"undefined" == typeof jwplayer && (jwplayer = function(h) {
    if (jwplayer.api) return jwplayer.api.selectPlayer(h)
},
jwplayer.version = "6.10.4906", jwplayer.vid = document.createElement("video"), jwplayer.audio = document.createElement("audio"), jwplayer.source = document.createElement("source"),
function(h) {
    function c(f) {
        return function() {
            return a(f)
        }
    }
    function l(f, a, k, m, d) {
        return function() {
            var b, c;
            if (d) k(f);
            else {
                try {
                    if (b = f.responseXML) if (c = b.firstChild, b.lastChild && "parsererror" === b.lastChild.nodeName) {
                        m && m("Invalid XML", a, f);
                        return
                    }
                } catch(g) {}
                if (b && c) return k(f); (b = e.parseXML(f.responseText)) && b.firstChild ? (f = e.extend({},
                f, {
                    responseXML: b
                }), k(f)) : m && m(f.responseText ? "Invalid XML": a, a, f)
            }
        }
    }
    var j = document,
    g = window,
    b = navigator,
    e = h.utils = {};
    e.exists = function(f) {
        switch (typeof f) {
        case "string":
            return 0 < f.length;
        case "object":
            return null !== f;
        case "undefined":
            return ! 1
        }
        return ! 0
    };
    e.styleDimension = function(f) {
        return f + (0 < f.toString().indexOf("%") ? "": "px")
    };
    e.getAbsolutePath = function(f, a) {
        e.exists(a) || (a = j.location.href);
        if (e.exists(f)) {
            var k;
            if (e.exists(f)) {
                k = f.indexOf("://");
                var m = f.indexOf("?");
                k = 0 < k && (0 > m || m > k)
            } else k = void 0;
            if (k) return f;
            k = a.substring(0, a.indexOf("://") + 3);
            var m = a.substring(k.length, a.indexOf("/", k.length + 1)),
            b;
            0 === f.indexOf("/") ? b = f.split("/") : (b = a.split("?")[0], b = b.substring(k.length + m.length + 1, b.lastIndexOf("/")), b = b.split("/").concat(f.split("/")));
            for (var d = [], c = 0; c < b.length; c++) b[c] && (e.exists(b[c]) && "." != b[c]) && (".." == b[c] ? d.pop() : d.push(b[c]));
            return k + m + "/" + d.join("/")
        }
    };
    e.extend = function() {
        var f = Array.prototype.slice.call(arguments, 0);
        if (1 < f.length) {
            for (var a = f[0], k = function(f, m) {
                void 0 !== m && null !== m && (a[f] = m)
            },
            m = 1; m < f.length; m++) e.foreach(f[m], k);
            return a
        }
        return null
    };
    var n = window.console = window.console || {
        log: function() {}
    };
    e.log = function() {
        var f = Array.prototype.slice.call(arguments, 0);
        "object" === typeof n.log ? n.log(f) : n.log.apply(n, f)
    };
    var a = e.userAgentMatch = function(f) {
        return null !== b.userAgent.toLowerCase().match(f)
    };
    e.isFF = c(/firefox/i);
    e.isChrome = c(/chrome/i);
    e.isIPod = c(/iP(hone|od)/i);
    e.isIPad = c(/iPad/i);
    e.isSafari602 = c(/Macintosh.*Mac OS X 10_8.*6\.0\.\d* Safari/i);
    e.isIETrident = function(f) {
        return f ? (f = parseFloat(f).toFixed(1), a(RegExp("trident/.+rv:\\s*" + f, "i"))) : a(/trident/i)
    };
    e.isMSIE = function(f) {
        return f ? (f = parseFloat(f).toFixed(1), a(RegExp("msie\\s*" + f, "i"))) : a(/msie/i)
    };
    e.isIE = function(f) {
        return f ? (f = parseFloat(f).toFixed(1), 11 <= f ? e.isIETrident(f) : e.isMSIE(f)) : e.isMSIE() || e.isIETrident()
    };
    e.isSafari = function() {
        return a(/safari/i) && !a(/chrome/i) && !a(/chromium/i) && !a(/android/i)
    };
    e.isIOS = function(f) {
        return f ? a(RegExp("iP(hone|ad|od).+\\sOS\\s" + f, "i")) : a(/iP(hone|ad|od)/i)
    };
    e.isAndroidNative = function(f) {
        return e.isAndroid(f, !0)
    };
    e.isAndroid = function(f, b) {
        return b && a(/chrome\/[123456789]/i) && !a(/chrome\/18/) ? !1 : f ? (e.isInt(f) && !/\./.test(f) && (f = "" + f + "."), a(RegExp("Android\\s*" + f, "i"))) : a(/Android/i)
    };
    e.isMobile = function() {
        return e.isIOS() || e.isAndroid()
    };
    e.saveCookie = function(f, a) {
        j.cookie = "jwplayer." + f + "\x3d" + a + "; path\x3d/"
    };
    e.getCookies = function() {
        for (var f = {},
        a = j.cookie.split("; "), k = 0; k < a.length; k++) {
            var m = a[k].split("\x3d");
            0 === m[0].indexOf("jwplayer.") && (f[m[0].substring(9, m[0].length)] = m[1])
        }
        return f
    };
    e.isInt = function(f) {
        return 0 === f % 1
    };
    e.typeOf = function(f) {
        var a = typeof f;
        return "object" === a ? !f ? "null": f instanceof Array ? "array": a: a
    };
    e.translateEventResponse = function(f, a) {
        var k = e.extend({},
        a);
        if (f == h.events.JWPLAYER_FULLSCREEN && !k.fullscreen) k.fullscreen = "true" === k.message,
        delete k.message;
        else if ("object" == typeof k.data) {
            var m = k.data;
            delete k.data;
            k = e.extend(k, m)
        } else "object" == typeof k.metadata && e.deepReplaceKeyName(k.metadata, ["__dot__", "__spc__", "__dsh__", "__default__"], [".", " ", "-", "default"]);
        e.foreach(["position", "duration", "offset"],
        function(f, m) {
            k[m] && (k[m] = Math.round(1E3 * k[m]) / 1E3)
        });
        return k
    };
    e.flashVersion = function() {
        if (e.isAndroid()) return 0;
        var f = b.plugins,
        a;
        try {
            if ("undefined" !== f && (a = f["Shockwave Flash"])) return parseInt(a.description.replace(/\D+(\d+)\..*/, "$1"), 10)
        } catch(k) {}
        if ("undefined" != typeof g.ActiveXObject) try {
            if (a = new g.ActiveXObject("ShockwaveFlash.ShockwaveFlash")) return parseInt(a.GetVariable("$version").split(" ")[1].split(",")[0], 10)
        } catch(m) {}
        return 0
    };
    e.getScriptPath = function(f) {
        for (var a = j.getElementsByTagName("script"), k = 0; k < a.length; k++) {
            var m = a[k].src;
            if (m && 0 <= m.indexOf(f)) return m.substr(0, m.indexOf(f))
        }
        return ""
    };
    e.deepReplaceKeyName = function(f, a, k) {
        switch (h.utils.typeOf(f)) {
        case "array":
            for (var m = 0; m < f.length; m++) f[m] = h.utils.deepReplaceKeyName(f[m], a, k);
            break;
        case "object":
            e.foreach(f,
            function(m, b) {
                var e;
                if (a instanceof Array && k instanceof Array) {
                    if (a.length != k.length) return;
                    e = a
                } else e = [a];
                for (var d = m,
                c = 0; c < e.length; c++) d = d.replace(RegExp(a[c], "g"), k[c]);
                f[d] = h.utils.deepReplaceKeyName(b, a, k);
                m != d && delete f[m]
            })
        }
        return f
    };
    var d = e.pluginPathType = {
        ABSOLUTE: 0,
        RELATIVE: 1,
        CDN: 2
    };
    e.getPluginPathType = function(f) {
        if ("string" == typeof f) {
            f = f.split("?")[0];
            var a = f.indexOf("://");
            if (0 < a) return d.ABSOLUTE;
            var k = f.indexOf("/");
            f = e.extension(f);
            return 0 > a && 0 > k && (!f || !isNaN(f)) ? d.CDN: d.RELATIVE
        }
    };
    e.getPluginName = function(f) {
        return f.replace(/^(.*\/)?([^-]*)-?.*\.(swf|js)$/, "$2")
    };
    e.getPluginVersion = function(f) {
        return f.replace(/[^-]*-?([^\.]*).*$/, "$1")
    };
    e.isYouTube = function(f) {
        return /^(http|\/\/).*(youtube\.com|youtu\.be)\/.+/.test(f)
    };
    e.youTubeID = function(f) {
        try {
            return /v[=\/]([^?&]*)|youtu\.be\/([^?]*)|^([\w-]*)$/i.exec(f).slice(1).join("").replace("?", "")
        } catch(a) {
            return ""
        }
    };
    e.isRtmp = function(f, a) {
        return 0 === f.indexOf("rtmp") || "rtmp" == a
    };
    e.foreach = function(f, a) {
        var k, m;
        for (k in f)"function" == e.typeOf(f.hasOwnProperty) ? f.hasOwnProperty(k) && (m = f[k], a(k, m)) : (m = f[k], a(k, m))
    };
    e.isHTTPS = function() {
        return 0 === g.location.href.indexOf("https")
    };
    e.repo = function() {
        var f = "http://localhost/" + h.version.split(/\W/).splice(0, 2).join("/") + "/";
        try {
            e.isHTTPS() && (f = f.replace("http://", "https://ssl."))
        } catch(a) {}
        return f
    };
    e.versionCheck = function(f) {
        f = ("0" + f).split(/\W/);
        var a = h.version.split(/\W/),
        k = parseFloat(f[0]),
        m = parseFloat(a[0]);
        return k > m || k === m && parseFloat("0" + f[1]) > parseFloat(a[1]) ? !1 : !0
    };
    e.ajax = function(f, a, k, m) {
        var b, d = !1;
        0 < f.indexOf("#") && (f = f.replace(/#.*$/, ""));
        if (f && 0 <= f.indexOf("://") && f.split("/")[2] != g.location.href.split("/")[2] && e.exists(g.XDomainRequest)) b = new g.XDomainRequest,
        b.onload = l(b, f, a, k, m),
        b.ontimeout = b.onprogress = function() {},
        b.timeout = 5E3;
        else if (e.exists(g.XMLHttpRequest)) {
            var c = b = new g.XMLHttpRequest,
            j = f;
            b.onreadystatechange = function() {
                if (4 === c.readyState) switch (c.status) {
                case 200:
                    l(c, j, a, k, m)();
                    break;
                case 404:
                    k("File not found", j, c)
                }
            }
        } else return k && k("", f, b),
        b;
        b.overrideMimeType && b.overrideMimeType("text/xml");
        var n = f,
        h = b;
        b.onerror = function() {
            k("Error loading file", n, h)
        };
        try {
            b.open("GET", f, !0)
        } catch(G) {
            d = !0
        }
        setTimeout(function() {
            if (d) k && k(f, f, b);
            else try {
                b.send()
            } catch(a) {
                k && k(f, f, b)
            }
        },
        0);
        return b
    };
    e.parseXML = function(a) {
        var b;
        try {
            if (g.DOMParser) {
                if (b = (new g.DOMParser).parseFromString(a, "text/xml"), b.childNodes && b.childNodes.length && "parsererror" == b.childNodes[0].firstChild.nodeName) return
            } else b = new g.ActiveXObject("Microsoft.XMLDOM"),
            b.async = "false",
            b.loadXML(a)
        } catch(k) {
            return
        }
        return b
    };
    e.filterPlaylist = function(a, b, k) {
        var m = [],
        d,
        c,
        g,
        j;
        for (d = 0; d < a.length; d++) if (c = e.extend({},
        a[d]), c.sources = e.filterSources(c.sources, !1, k), 0 < c.sources.length) {
            for (g = 0; g < c.sources.length; g++) j = c.sources[g],
            j.label || (j.label = g.toString());
            m.push(c)
        }
        if (b && 0 === m.length) for (d = 0; d < a.length; d++) if (c = e.extend({},
        a[d]), c.sources = e.filterSources(c.sources, !0, k), 0 < c.sources.length) {
            for (g = 0; g < c.sources.length; g++) j = c.sources[g],
            j.label || (j.label = g.toString());
            m.push(c)
        }
        return m
    };
    e.between = function(a, b, d) {
        return Math.max(Math.min(a, d), b)
    };
    e.filterSources = function(a, b, d) {
        var m, c;
        if (a) {
            c = [];
            for (var g = 0; g < a.length; g++) {
                var j = e.extend({},
                a[g]),
                n = j.file,
                l = j.type;
                n && (j.file = n = e.trim("" + n), l || (l = e.extension(n), j.type = l = e.extensionmap.extType(l)), b ? h.embed.flashCanPlay(n, l) && (m || (m = l), l == m && c.push(j)) : h.embed.html5CanPlay(n, l, d) && (m || (m = l), l == m && c.push(j)))
            }
        }
        return c
    };
    e.canPlayHTML5 = function(a) {
        a = e.extensionmap.types[a];
        return !! a && !!h.vid.canPlayType && !!h.vid.canPlayType(a)
    };
    e.seconds = function(a) {
        a = a.replace(",", ".");
        var b = a.split(":"),
        d = 0;
        "s" == a.slice( - 1) ? d = parseFloat(a) : "m" == a.slice( - 1) ? d = 60 * parseFloat(a) : "h" == a.slice( - 1) ? d = 3600 * parseFloat(a) : 1 < b.length ? (d = parseFloat(b[b.length - 1]), d += 60 * parseFloat(b[b.length - 2]), 3 == b.length && (d += 3600 * parseFloat(b[b.length - 3]))) : d = parseFloat(a);
        return d
    };
    e.serialize = function(a) {
        return null === a ? null: "true" == a.toString().toLowerCase() ? !0 : "false" == a.toString().toLowerCase() ? !1 : isNaN(Number(a)) || 5 < a.length || 0 === a.length ? a: Number(a)
    };
    e.addClass = function(a, b) {
        a.className = a.className + " " + b
    };
    e.removeClass = function(a, b) {
        a.className = a.className.replace(RegExp(" *" + b, "g"), " ")
    }
} (jwplayer),
function(h) {
    function c(a) {
        var b = document.createElement("style");
        a && b.appendChild(document.createTextNode(a));
        b.type = "text/css";
        document.getElementsByTagName("head")[0].appendChild(b);
        return b
    }
    function l(a, m, d) {
        if (!b.exists(m)) return "";
        d = d ? " !important": "";
        return "string" === typeof m && isNaN(m) ? /png|gif|jpe?g/i.test(m) && 0 > m.indexOf("url") ? "url(" + m + ")": m + d: 0 === m || "z-index" === a || "opacity" === a ? "" + m + d: /color/i.test(a) ? "#" + b.pad(m.toString(16).replace(/^0x/i, ""), 6) + d: Math.ceil(m) + "px" + d
    }
    function j(a, b) {
        for (var d = 0; d < a.length; d++) {
            var f = a[d],
            c,
            e;
            if (void 0 !== f && null !== f) for (c in b) {
                e = c;
                e = e.split("-");
                for (var g = 1; g < e.length; g++) e[g] = e[g].charAt(0).toUpperCase() + e[g].slice(1);
                e = e.join("");
                f.style[e] !== b[c] && (f.style[e] = b[c])
            }
        }
    }
    function g(b) {
        var m = e[b].sheet,
        d,
        c,
        g;
        if (m) {
            d = m.cssRules;
            c = f[b];
            g = b;
            var j = a[g];
            g += " { ";
            for (var n in j) g += n + ": " + j[n] + "; ";
            g += "}";
            if (void 0 !== c && c < d.length && d[c].selectorText === b) {
                if (g === d[c].cssText) return;
                m.deleteRule(c)
            } else c = d.length,
            f[b] = c;
            try {
                m.insertRule(g, c)
            } catch(h) {}
        }
    }
    var b = h.utils,
    e = {},
    n, a = {},
    d = null,
    f = {};
    b.cssKeyframes = function(a, b) {
        var d = e.keyframes;
        d || (d = c(), e.keyframes = d);
        var d = d.sheet,
        f = "@keyframes " + a + " { " + b + " }";
        try {
            d.insertRule(f, d.cssRules.length)
        } catch(g) {}
        f = f.replace(/(keyframes|transform)/g, "-webkit-$1");
        try {
            d.insertRule(f, d.cssRules.length)
        } catch(j) {}
    };
    var q = b.css = function(b, m, f) {
        a[b] || (a[b] = {});
        var j = a[b];
        f = f || !1;
        var h = !1,
        q, p;
        for (q in m) p = l(q, m[q], f),
        "" !== p ? p !== j[q] && (j[q] = p, h = !0) : void 0 !== j[q] && (delete j[q], h = !0);
        if (h) {
            if (!e[b]) {
                m = n && n.sheet && n.sheet.cssRules && n.sheet.cssRules.length || 0;
                if (!n || 5E4 < m) n = c();
                e[b] = n
            }
            null !== d ? d.styleSheets[b] = a[b] : g(b)
        }
    };
    q.style = function(a, b, f) {
        if (! (void 0 === a || null === a)) {
            void 0 === a.length && (a = [a]);
            var c = {},
            e;
            for (e in b) c[e] = l(e, b[e]);
            if (null !== d && !f) {
                b = (b = a.__cssRules) || {};
                for (var g in c) b[g] = c[g];
                a.__cssRules = b;
                0 > d.elements.indexOf(a) && d.elements.push(a)
            } else j(a, c)
        }
    };
    q.block = function(a) {
        null === d && (d = {
            id: a,
            styleSheets: {},
            elements: []
        })
    };
    q.unblock = function(a) {
        if (d && (!a || d.id === a)) {
            for (var b in d.styleSheets) g(b);
            for (a = 0; a < d.elements.length; a++) b = d.elements[a],
            j(b, b.__cssRules);
            d = null
        }
    };
    b.clearCss = function(b) {
        for (var d in a) 0 <= d.indexOf(b) && delete a[d];
        for (var c in e) 0 <= c.indexOf(b) && g(c)
    };
    b.transform = function(a, b) {
        var d = {};
        b = b || "";
        d.transform = b;
        d["-webkit-transform"] = b;
        d["-ms-transform"] = b;
        d["-moz-transform"] = b;
        d["-o-transform"] = b;
        "string" === typeof a ? q(a, d) : q.style(a, d)
    };
    b.dragStyle = function(a, b) {
        q(a, {
            "-webkit-user-select": b,
            "-moz-user-select": b,
            "-ms-user-select": b,
            "-webkit-user-drag": b,
            "user-select": b,
            "user-drag": b
        })
    };
    b.transitionStyle = function(a, b) {
        navigator.userAgent.match(/5\.\d(\.\d)? safari/i) || q(a, {
            "-webkit-transition": b,
            "-moz-transition": b,
            "-o-transition": b,
            transition: b
        })
    };
    b.rotate = function(a, d) {
        b.transform(a, "rotate(" + d + "deg)")
    };
    b.rgbHex = function(a) {
        a = String(a).replace("#", "");
        3 === a.length && (a = a[0] + a[0] + a[1] + a[1] + a[2] + a[2]);
        return "#" + a.substr( - 6)
    };
    b.hexToRgba = function(a, b) {
        var d = "rgb",
        c = [parseInt(a.substr(1, 2), 16), parseInt(a.substr(3, 2), 16), parseInt(a.substr(5, 2), 16)];
        void 0 !== b && 100 !== b && (d += "a", c.push(b / 100));
        return d + "(" + c.join(",") + ")"
    }
} (jwplayer),
function(h) {
    var c = h.foreach,
    l = {
        mp4: "video/mp4",
        ogg: "video/ogg",
        oga: "audio/ogg",
        vorbis: "audio/ogg",
        webm: "video/webm",
        aac: "audio/mp4",
        mp3: "audio/mpeg",
        hls: "application/vnd.apple.mpegurl"
    },
    j = {
        mp4: l.mp4,
        f4v: l.mp4,
        m4v: l.mp4,
        mov: l.mp4,
        m4a: l.aac,
        f4a: l.aac,
        aac: l.aac,
        mp3: l.mp3,
        ogv: l.ogg,
        ogg: l.ogg,
        oga: l.vorbis,
        vorbis: l.vorbis,
        webm: l.webm,
        m3u8: l.hls,
        m3u: l.hls,
        hls: l.hls
    },
    g = h.extensionmap = {};
    c(j,
    function(b, c) {
        g[b] = {
            html5: c
        }
    });
    c({
        flv: "video",
        f4v: "video",
        mov: "video",
        m4a: "video",
        m4v: "video",
        mp4: "video",
        aac: "video",
        f4a: "video",
        mp3: "sound",
        smil: "rtmp",
        m3u8: "hls",
        hls: "hls"
    },
    function(b, c) {
        g[b] || (g[b] = {});
        g[b].flash = c
    });
    g.types = l;
    g.mimeType = function(b) {
        var e;
        c(l,
        function(c, a) { ! e && a == b && (e = c)
        });
        return e
    };
    g.extType = function(b) {
        return g.mimeType(j[b])
    }
} (jwplayer.utils),
function(h) {
    var c = h.loaderstatus = {
        NEW: 0,
        LOADING: 1,
        ERROR: 2,
        COMPLETE: 3
    },
    l = document;
    h.scriptloader = function(j) {
        function g(b) {
            a = c.ERROR;
            n.sendEvent(e.ERROR, b)
        }
        function b(b) {
            a = c.COMPLETE;
            n.sendEvent(e.COMPLETE, b)
        }
        var e = jwplayer.events,
        n = h.extend(this, new e.eventdispatcher),
        a = c.NEW;
        this.load = function() {
            if (a == c.NEW) {
                var d = h.scriptloader.loaders[j];
                if (d && (a = d.getStatus(), 2 > a)) {
                    d.addEventListener(e.ERROR, g);
                    d.addEventListener(e.COMPLETE, b);
                    return
                }
                var f = l.createElement("script");
                f.addEventListener ? (f.onload = b, f.onerror = g) : f.readyState && (f.onreadystatechange = function(a) { ("loaded" == f.readyState || "complete" == f.readyState) && b(a)
                });
                l.getElementsByTagName("head")[0].appendChild(f);
                f.src = j;
                a = c.LOADING;
                h.scriptloader.loaders[j] = this
            }
        };
        this.getStatus = function() {
            return a
        }
    };
    h.scriptloader.loaders = {}
} (jwplayer.utils),
function(h) {
    h.trim = function(c) {
        return c.replace(/^\s*/, "").replace(/\s*$/, "")
    };
    h.pad = function(c, h, j) {
        for (j || (j = "0"); c.length < h;) c = j + c;
        return c
    };
    h.xmlAttribute = function(c, h) {
        for (var j = 0; j < c.attributes.length; j++) if (c.attributes[j].name && c.attributes[j].name.toLowerCase() == h.toLowerCase()) return c.attributes[j].value.toString();
        return ""
    };
    h.extension = function(c) {
        if (!c || "rtmp" == c.substr(0, 4)) return "";
        var h;
        h = c.match(/manifest\(format=(.*),audioTrack/);
        h = !h || !h[1] ? !1 : h[1].split("-")[0];
        if (h) return h;
        c = c.substring(c.lastIndexOf("/") + 1, c.length).split("?")[0].split("#")[0];
        if ( - 1 < c.lastIndexOf(".")) return c.substr(c.lastIndexOf(".") + 1, c.length).toLowerCase()
    };
    h.stringToColor = function(c) {
        c = c.replace(/(#|0x)?([0-9A-F]{3,6})$/gi, "$2");
        3 == c.length && (c = c.charAt(0) + c.charAt(0) + c.charAt(1) + c.charAt(1) + c.charAt(2) + c.charAt(2));
        return parseInt(c, 16)
    }
} (jwplayer.utils),
function(h) {
    var c = "touchmove",
    l = "touchstart";
    h.touch = function(j) {
        function g(d) {
            d.type == l ? (a = !0, f = e(k.DRAG_START, d)) : d.type == c ? a && (q || (b(k.DRAG_START, d, f), q = !0), b(k.DRAG, d)) : (a && (q ? b(k.DRAG_END, d) : (d.cancelBubble = !0, b(k.TAP, d))), a = q = !1, f = null)
        }
        function b(a, b, c) {
            if (d[a] && (b.preventManipulation && b.preventManipulation(), b.preventDefault && b.preventDefault(), b = c ? c: e(a, b))) d[a](b)
        }
        function e(a, b) {
            var d = null;
            b.touches && b.touches.length ? d = b.touches[0] : b.changedTouches && b.changedTouches.length && (d = b.changedTouches[0]);
            if (!d) return null;
            var c = n.getBoundingClientRect(),
            d = {
                type: a,
                target: n,
                x: d.pageX - window.pageXOffset - c.left,
                y: d.pageY,
                deltaX: 0,
                deltaY: 0
            };
            a != k.TAP && f && (d.deltaX = d.x - f.x, d.deltaY = d.y - f.y);
            return d
        }
        var n = j,
        a = !1,
        d = {},
        f = null,
        q = !1,
        k = h.touchEvents;
        document.addEventListener(c, g);
        document.addEventListener("touchend",
        function(d) {
            a && q && b(k.DRAG_END, d);
            a = q = !1;
            f = null
        });
        document.addEventListener("touchcancel", g);
        j.addEventListener(l, g);
        j.addEventListener("touchend", g);
        this.addEventListener = function(a, b) {
            d[a] = b
        };
        this.removeEventListener = function(a) {
            delete d[a]
        };
        return this
    }
} (jwplayer.utils),
function(h) {
    h.touchEvents = {
        DRAG: "jwplayerDrag",
        DRAG_START: "jwplayerDragStart",
        DRAG_END: "jwplayerDragEnd",
        TAP: "jwplayerTap"
    }
} (jwplayer.utils),
function(h) {
    h.key = function(c) {
        var l, j, g;
        this.edition = function() {
            return g && g.getTime() < (new Date).getTime() ? "invalid": l
        };
        this.token = function() {
            return j
        };
        h.exists(c) || (c = "");
        try {
            c = h.tea.decrypt(c, "36QXq4W@GSBV^teR");
            var b = c.split("/"); (l = b[0]) ? /^(free|pro|premium|enterprise|ads)$/i.test(l) ? (j = b[1], b[2] && 0 < parseInt(b[2]) && (g = new Date, g.setTime(String(b[2])))) : l = "invalid": l = "free"
        } catch(e) {
            l = "invalid"
        }
    }
} (jwplayer.utils),
function(h) {
    var c = h.tea = {};
    c.encrypt = function(g, b) {
        if (0 == g.length) return "";
        var e = c.strToLongs(j.encode(g));
        1 >= e.length && (e[1] = 0);
        for (var n = c.strToLongs(j.encode(b).slice(0, 16)), a = e.length, d = e[a - 1], f = e[0], h, k = Math.floor(6 + 52 / a), m = 0; 0 < k--;) {
            m += 2654435769;
            h = m >>> 2 & 3;
            for (var r = 0; r < a; r++) f = e[(r + 1) % a],
            d = (d >>> 5 ^ f << 2) + (f >>> 3 ^ d << 4) ^ (m ^ f) + (n[r & 3 ^ h] ^ d),
            d = e[r] += d
        }
        e = c.longsToStr(e);
        return l.encode(e)
    };
    c.decrypt = function(g, b) {
        if (0 == g.length) return "";
        for (var e = c.strToLongs(l.decode(g)), h = c.strToLongs(j.encode(b).slice(0, 16)), a = e.length, d = e[a - 1], f = e[0], q, k = 2654435769 * Math.floor(6 + 52 / a); 0 != k;) {
            q = k >>> 2 & 3;
            for (var m = a - 1; 0 <= m; m--) d = e[0 < m ? m - 1 : a - 1],
            d = (d >>> 5 ^ f << 2) + (f >>> 3 ^ d << 4) ^ (k ^ f) + (h[m & 3 ^ q] ^ d),
            f = e[m] -= d;
            k -= 2654435769
        }
        e = c.longsToStr(e);
        e = e.replace(/\0+$/, "");
        return j.decode(e)
    };
    c.strToLongs = function(c) {
        for (var b = Array(Math.ceil(c.length / 4)), e = 0; e < b.length; e++) b[e] = c.charCodeAt(4 * e) + (c.charCodeAt(4 * e + 1) << 8) + (c.charCodeAt(4 * e + 2) << 16) + (c.charCodeAt(4 * e + 3) << 24);
        return b
    };
    c.longsToStr = function(c) {
        for (var b = Array(c.length), e = 0; e < c.length; e++) b[e] = String.fromCharCode(c[e] & 255, c[e] >>> 8 & 255, c[e] >>> 16 & 255, c[e] >>> 24 & 255);
        return b.join("")
    };
    var l = {
        code: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d",
        encode: function(c, b) {
            var e, h, a, d, f = [],
            q = "",
            k,
            m,
            r = l.code;
            m = ("undefined" == typeof b ? 0 : b) ? j.encode(c) : c;
            k = m.length % 3;
            if (0 < k) for (; 3 > k++;) q += "\x3d",
            m += "\x00";
            for (k = 0; k < m.length; k += 3) e = m.charCodeAt(k),
            h = m.charCodeAt(k + 1),
            a = m.charCodeAt(k + 2),
            d = e << 16 | h << 8 | a,
            e = d >> 18 & 63,
            h = d >> 12 & 63,
            a = d >> 6 & 63,
            d &= 63,
            f[k / 3] = r.charAt(e) + r.charAt(h) + r.charAt(a) + r.charAt(d);
            f = f.join("");
            return f = f.slice(0, f.length - q.length) + q
        },
        decode: function(c, b) {
            b = "undefined" == typeof b ? !1 : b;
            var e, h, a, d, f, q = [],
            k,
            m = l.code;
            k = b ? j.decode(c) : c;
            for (var r = 0; r < k.length; r += 4) e = m.indexOf(k.charAt(r)),
            h = m.indexOf(k.charAt(r + 1)),
            d = m.indexOf(k.charAt(r + 2)),
            f = m.indexOf(k.charAt(r + 3)),
            a = e << 18 | h << 12 | d << 6 | f,
            e = a >>> 16 & 255,
            h = a >>> 8 & 255,
            a &= 255,
            q[r / 4] = String.fromCharCode(e, h, a),
            64 == f && (q[r / 4] = String.fromCharCode(e, h)),
            64 == d && (q[r / 4] = String.fromCharCode(e));
            d = q.join("");
            return b ? j.decode(d) : d
        }
    },
    j = {
        encode: function(c) {
            c = c.replace(/[\u0080-\u07ff]/g,
            function(b) {
                b = b.charCodeAt(0);
                return String.fromCharCode(192 | b >> 6, 128 | b & 63)
            });
            return c = c.replace(/[\u0800-\uffff]/g,
            function(b) {
                b = b.charCodeAt(0);
                return String.fromCharCode(224 | b >> 12, 128 | b >> 6 & 63, 128 | b & 63)
            })
        },
        decode: function(c) {
            c = c.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g,
            function(b) {
                b = (b.charCodeAt(0) & 15) << 12 | (b.charCodeAt(1) & 63) << 6 | b.charCodeAt(2) & 63;
                return String.fromCharCode(b)
            });
            return c = c.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g,
            function(b) {
                b = (b.charCodeAt(0) & 31) << 6 | b.charCodeAt(1) & 63;
                return String.fromCharCode(b)
            })
        }
    }
} (jwplayer.utils),
function(h) {
    h.events = {
        COMPLETE: "COMPLETE",
        ERROR: "ERROR",
        API_READY: "jwplayerAPIReady",
        JWPLAYER_READY: "jwplayerReady",
        JWPLAYER_FULLSCREEN: "jwplayerFullscreen",
        JWPLAYER_RESIZE: "jwplayerResize",
        JWPLAYER_ERROR: "jwplayerError",
        JWPLAYER_SETUP_ERROR: "jwplayerSetupError",
        JWPLAYER_MEDIA_BEFOREPLAY: "jwplayerMediaBeforePlay",
        JWPLAYER_MEDIA_BEFORECOMPLETE: "jwplayerMediaBeforeComplete",
        JWPLAYER_COMPONENT_SHOW: "jwplayerComponentShow",
        JWPLAYER_COMPONENT_HIDE: "jwplayerComponentHide",
        JWPLAYER_MEDIA_BUFFER: "jwplayerMediaBuffer",
        JWPLAYER_MEDIA_BUFFER_FULL: "jwplayerMediaBufferFull",
        JWPLAYER_MEDIA_ERROR: "jwplayerMediaError",
        JWPLAYER_MEDIA_LOADED: "jwplayerMediaLoaded",
        JWPLAYER_MEDIA_COMPLETE: "jwplayerMediaComplete",
        JWPLAYER_MEDIA_SEEK: "jwplayerMediaSeek",
        JWPLAYER_MEDIA_TIME: "jwplayerMediaTime",
        JWPLAYER_MEDIA_VOLUME: "jwplayerMediaVolume",
        JWPLAYER_MEDIA_META: "jwplayerMediaMeta",
        JWPLAYER_MEDIA_MUTE: "jwplayerMediaMute",
        JWPLAYER_MEDIA_LEVELS: "jwplayerMediaLevels",
        JWPLAYER_MEDIA_LEVEL_CHANGED: "jwplayerMediaLevelChanged",
        JWPLAYER_CAPTIONS_CHANGED: "jwplayerCaptionsChanged",
        JWPLAYER_CAPTIONS_LIST: "jwplayerCaptionsList",
        JWPLAYER_CAPTIONS_LOADED: "jwplayerCaptionsLoaded",
        JWPLAYER_PLAYER_STATE: "jwplayerPlayerState",
        state: {
            BUFFERING: "BUFFERING",
            IDLE: "IDLE",
            PAUSED: "PAUSED",
            PLAYING: "PLAYING"
        },
        JWPLAYER_PLAYLIST_LOADED: "jwplayerPlaylistLoaded",
        JWPLAYER_PLAYLIST_ITEM: "jwplayerPlaylistItem",
        JWPLAYER_PLAYLIST_COMPLETE: "jwplayerPlaylistComplete",
        JWPLAYER_DISPLAY_CLICK: "jwplayerViewClick",
        JWPLAYER_VIEW_TAB_FOCUS: "jwplayerViewTabFocus",
        JWPLAYER_CONTROLS: "jwplayerViewControls",
        JWPLAYER_USER_ACTION: "jwplayerUserAction",
        JWPLAYER_INSTREAM_CLICK: "jwplayerInstreamClicked",
        JWPLAYER_INSTREAM_DESTROYED: "jwplayerInstreamDestroyed",
        JWPLAYER_AD_TIME: "jwplayerAdTime",
        JWPLAYER_AD_ERROR: "jwplayerAdError",
        JWPLAYER_AD_CLICK: "jwplayerAdClicked",
        JWPLAYER_AD_COMPLETE: "jwplayerAdComplete",
        JWPLAYER_AD_IMPRESSION: "jwplayerAdImpression",
        JWPLAYER_AD_COMPANIONS: "jwplayerAdCompanions",
        JWPLAYER_AD_SKIPPED: "jwplayerAdSkipped",
        JWPLAYER_AD_PLAY: "jwplayerAdPlay",
        JWPLAYER_AD_PAUSE: "jwplayerAdPause",
        JWPLAYER_AD_META: "jwplayerAdMeta",
        JWPLAYER_CAST_AVAILABLE: "jwplayerCastAvailable",
        JWPLAYER_CAST_SESSION: "jwplayerCastSession",
        JWPLAYER_CAST_AD_CHANGED: "jwplayerCastAdChanged"
    }
} (jwplayer),
function(h) {
    var c = h.utils;
    h.events.eventdispatcher = function(l, j) {
        function g(b, a, d) {
            if (b) for (var f = 0; f < b.length; f++) {
                var e = b[f];
                if (e) {
                    null !== e.count && 0 === --e.count && delete b[f];
                    try {
                        e.listener(a)
                    } catch(g) {
                        c.log('Error handling "' + d + '" event listener [' + f + "]: " + g.toString(), e.listener, a)
                    }
                }
            }
        }
        var b, e;
        this.resetEventListeners = function() {
            b = {};
            e = []
        };
        this.resetEventListeners();
        this.addEventListener = function(e, a, d) {
            try {
                c.exists(b[e]) || (b[e] = []),
                "string" == c.typeOf(a) && (a = (new Function("return " + a))()),
                b[e].push({
                    listener: a,
                    count: d || null
                })
            } catch(f) {
                c.log("error", f)
            }
            return ! 1
        };
        this.removeEventListener = function(e, a) {
            if (b[e]) {
                try {
                    if (void 0 === a) {
                        b[e] = [];
                        return
                    }
                    for (var d = 0; d < b[e].length; d++) if (b[e][d].listener.toString() == a.toString()) {
                        b[e].splice(d, 1);
                        break
                    }
                } catch(f) {
                    c.log("error", f)
                }
                return ! 1
            }
        };
        this.addGlobalListener = function(b, a) {
            try {
                "string" == c.typeOf(b) && (b = (new Function("return " + b))()),
                e.push({
                    listener: b,
                    count: a || null
                })
            } catch(d) {
                c.log("error", d)
            }
            return ! 1
        };
        this.removeGlobalListener = function(b) {
            if (b) {
                try {
                    for (var a = e.length; a--;) e[a].listener.toString() == b.toString() && e.splice(a, 1)
                } catch(d) {
                    c.log("error", d)
                }
                return ! 1
            }
        };
        this.sendEvent = function(n, a) {
            c.exists(a) || (a = {});
            c.extend(a, {
                id: l,
                version: h.version,
                type: n
            });
            j && c.log(n, a);
            g(b[n], a, n);
            g(e, a, n)
        }
    }
} (window.jwplayer),
function(h) {
    var c = {},
    l = {};
    h.plugins = function() {};
    h.plugins.loadPlugins = function(j, g) {
        l[j] = new h.plugins.pluginloader(new h.plugins.model(c), g);
        return l[j]
    };
    h.plugins.registerPlugin = function(j, g, b, e) {
        var n = h.utils.getPluginName(j);
        c[n] || (c[n] = new h.plugins.plugin(j));
        c[n].registerPlugin(j, g, b, e)
    }
} (jwplayer),
function(h) {
    h.plugins.model = function(c) {
        this.addPlugin = function(l) {
            var j = h.utils.getPluginName(l);
            c[j] || (c[j] = new h.plugins.plugin(l));
            return c[j]
        };
        this.getPlugins = function() {
            return c
        }
    }
} (jwplayer),
function(h) {
    var c = jwplayer.utils,
    l = jwplayer.events;
    h.pluginmodes = {
        FLASH: 0,
        JAVASCRIPT: 1,
        HYBRID: 2
    };
    h.plugin = function(j) {
        function g() {
            switch (c.getPluginPathType(j)) {
            case c.pluginPathType.ABSOLUTE:
                return j;
            case c.pluginPathType.RELATIVE:
                return c.getAbsolutePath(j, window.location.href)
            }
        }
        function b() {
            q = setTimeout(function() {
                n = c.loaderstatus.COMPLETE;
                k.sendEvent(l.COMPLETE)
            },
            1E3)
        }
        function e() {
            n = c.loaderstatus.ERROR;
            k.sendEvent(l.ERROR)
        }
        var n = c.loaderstatus.NEW,
        a, d, f, q, k = new l.eventdispatcher;
        c.extend(this, k);
        this.load = function() {
            if (n == c.loaderstatus.NEW) if (0 < j.lastIndexOf(".swf")) a = j,
            n = c.loaderstatus.COMPLETE,
            k.sendEvent(l.COMPLETE);
            else if (c.getPluginPathType(j) == c.pluginPathType.CDN) n = c.loaderstatus.COMPLETE,
            k.sendEvent(l.COMPLETE);
            else {
                n = c.loaderstatus.LOADING;
                var d = new c.scriptloader(g());
                d.addEventListener(l.COMPLETE, b);
                d.addEventListener(l.ERROR, e);
                d.load()
            }
        };
        this.registerPlugin = function(b, e, g, j) {
            q && (clearTimeout(q), q = void 0);
            f = e;
            g && j ? (a = j, d = g) : "string" == typeof g ? a = g: "function" == typeof g ? d = g: !g && !j && (a = b);
            n = c.loaderstatus.COMPLETE;
            k.sendEvent(l.COMPLETE)
        };
        this.getStatus = function() {
            return n
        };
        this.getPluginName = function() {
            return c.getPluginName(j)
        };
        this.getFlashPath = function() {
            if (a) switch (c.getPluginPathType(a)) {
            case c.pluginPathType.ABSOLUTE:
                return a;
            case c.pluginPathType.RELATIVE:
                return 0 < j.lastIndexOf(".swf") ? c.getAbsolutePath(a, window.location.href) : c.getAbsolutePath(a, g())
            }
            return null
        };
        this.getJS = function() {
            return d
        };
        this.getTarget = function() {
            return f
        };
        this.getPluginmode = function() {
            if ("undefined" != typeof a && "undefined" != typeof d) return h.pluginmodes.HYBRID;
            if ("undefined" != typeof a) return h.pluginmodes.FLASH;
            if ("undefined" != typeof d) return h.pluginmodes.JAVASCRIPT
        };
        this.getNewInstance = function(a, b, c) {
            return new d(a, b, c)
        };
        this.getURL = function() {
            return j
        }
    }
} (jwplayer.plugins),
function(h) {
    var c = h.utils,
    l = h.events,
    j = c.foreach;
    h.plugins.pluginloader = function(g, b) {
        function e() {
            f && m.sendEvent(l.ERROR, {
                message: q
            });
            d || (d = !0, a = c.loaderstatus.COMPLETE, m.sendEvent(l.COMPLETE))
        }
        function h() {
            k || e();
            if (!d && !f) {
                var a = 0,
                b = g.getPlugins();
                c.foreach(k,
                function(d) {
                    d = c.getPluginName(d);
                    var m = b[d];
                    d = m.getJS();
                    var g = m.getTarget(),
                    m = m.getStatus();
                    m == c.loaderstatus.LOADING || m == c.loaderstatus.NEW ? a++:d && !c.versionCheck(g) && (f = !0, q = "Incompatible player version", e())
                });
                0 === a && e()
            }
        }
        var a = c.loaderstatus.NEW,
        d = !1,
        f = !1,
        q, k = b,
        m = new l.eventdispatcher;
        c.extend(this, m);
        this.setupPlugins = function(a, b, d) {
            var e = {
                length: 0,
                plugins: {}
            },
            f = 0,
            m = {},
            h = g.getPlugins();
            j(b.plugins,
            function(g, j) {
                var k = c.getPluginName(g),
                n = h[k],
                l = n.getFlashPath(),
                q = n.getJS(),
                I = n.getURL();
                l && (e.plugins[l] = c.extend({},
                j), e.plugins[l].pluginmode = n.getPluginmode(), e.length++);
                try {
                    if (q && b.plugins && b.plugins[I]) {
                        var r = document.createElement("div");
                        r.id = a.id + "_" + k;
                        r.style.position = "absolute";
                        r.style.top = 0;
                        r.style.zIndex = f + 10;
                        m[k] = n.getNewInstance(a, c.extend({},
                        b.plugins[I]), r);
                        f++;
                        a.onReady(d(m[k], r, !0));
                        a.onResize(d(m[k], r))
                    }
                } catch(P) {
                    c.log("ERROR: Failed to load " + k + ".")
                }
            });
            a.plugins = m;
            return e
        };
        this.load = function() {
            if (! (c.exists(b) && "object" != c.typeOf(b))) {
                a = c.loaderstatus.LOADING;
                j(b,
                function(a) {
                    c.exists(a) && (a = g.addPlugin(a), a.addEventListener(l.COMPLETE, h), a.addEventListener(l.ERROR, r))
                });
                var d = g.getPlugins();
                j(d,
                function(a, b) {
                    b.load()
                })
            }
            h()
        };
        this.destroy = function() {
            m && (m.resetEventListeners(), m = null)
        };
        var r = this.pluginFailed = function() {
            f || (f = !0, q = "File not found", e())
        };
        this.getStatus = function() {
            return a
        }
    }
} (jwplayer),
function(h) {
    h.parsers = {
        localName: function(c) {
            return c ? c.localName ? c.localName: c.baseName ? c.baseName: "": ""
        },
        textContent: function(c) {
            return c ? c.textContent ? h.utils.trim(c.textContent) : c.text ? h.utils.trim(c.text) : "": ""
        },
        getChildNode: function(c, h) {
            return c.childNodes[h]
        },
        numChildren: function(c) {
            return c.childNodes ? c.childNodes.length: 0
        }
    }
} (jwplayer),
function(h) {
    var c = h.parsers; (c.jwparser = function() {}).parseEntry = function(l, j) {
        for (var g = [], b = [], e = h.utils.xmlAttribute, n = 0; n < l.childNodes.length; n++) {
            var a = l.childNodes[n];
            if ("jwplayer" == a.prefix) {
                var d = c.localName(a);
                "source" == d ? (delete j.sources, g.push({
                    file: e(a, "file"),
                    "default": e(a, "default"),
                    label: e(a, "label"),
                    type: e(a, "type")
                })) : "track" == d ? (delete j.tracks, b.push({
                    file: e(a, "file"),
                    "default": e(a, "default"),
                    kind: e(a, "kind"),
                    label: e(a, "label")
                })) : (j[d] = h.utils.serialize(c.textContent(a)), "file" == d && j.sources && delete j.sources)
            }
            j.file || (j.file = j.link)
        }
        if (g.length) {
            j.sources = [];
            for (n = 0; n < g.length; n++) 0 < g[n].file.length && (g[n]["default"] = "true" == g[n]["default"] ? !0 : !1, g[n].label.length || delete g[n].label, j.sources.push(g[n]))
        }
        if (b.length) {
            j.tracks = [];
            for (n = 0; n < b.length; n++) 0 < b[n].file.length && (b[n]["default"] = "true" == b[n]["default"] ? !0 : !1, b[n].kind = !b[n].kind.length ? "captions": b[n].kind, b[n].label.length || delete b[n].label, j.tracks.push(b[n]))
        }
        return j
    }
} (jwplayer),
function(h) {
    var c = jwplayer.utils,
    l = c.xmlAttribute,
    j = h.localName,
    g = h.textContent,
    b = h.numChildren,
    e = h.mediaparser = function() {};
    e.parseGroup = function(h, a) {
        var d, f, q = [];
        for (f = 0; f < b(h); f++) if (d = h.childNodes[f], "media" == d.prefix && j(d)) switch (j(d).toLowerCase()) {
        case "content":
            l(d, "duration") && (a.duration = c.seconds(l(d, "duration")));
            0 < b(d) && (a = e.parseGroup(d, a));
            l(d, "url") && (a.sources || (a.sources = []), a.sources.push({
                file: l(d, "url"),
                type: l(d, "type"),
                width: l(d, "width"),
                label: l(d, "label")
            }));
            break;
        case "title":
            a.title = g(d);
            break;
        case "description":
            a.description = g(d);
            break;
        case "guid":
            a.mediaid = g(d);
            break;
        case "thumbnail":
            a.image || (a.image = l(d, "url"));
            break;
        case "group":
            e.parseGroup(d, a);
            break;
        case "subtitle":
            var k = {};
            k.file = l(d, "url");
            k.kind = "captions";
            if (0 < l(d, "lang").length) {
                var m = k;
                d = l(d, "lang");
                var r = {
                    zh: "Chinese",
                    nl: "Dutch",
                    en: "English",
                    fr: "French",
                    de: "German",
                    it: "Italian",
                    ja: "Japanese",
                    pt: "Portuguese",
                    ru: "Russian",
                    es: "Spanish"
                };
                d = r[d] ? r[d] : d;
                m.label = d
            }
            q.push(k)
        }
        a.hasOwnProperty("tracks") || (a.tracks = []);
        for (f = 0; f < q.length; f++) a.tracks.push(q[f]);
        return a
    }
} (jwplayer.parsers),
function(h) {
    function c(b) {
        for (var a = {},
        d = 0; d < b.childNodes.length; d++) {
            var c = b.childNodes[d],
            g = e(c);
            if (g) switch (g.toLowerCase()) {
            case "enclosure":
                a.file = l.xmlAttribute(c, "url");
                break;
            case "title":
                a.title = j(c);
                break;
            case "guid":
                a.mediaid = j(c);
                break;
            case "pubdate":
                a.date = j(c);
                break;
            case "description":
                a.description = j(c);
                break;
            case "link":
                a.link = j(c);
                break;
            case "category":
                a.tags = a.tags ? a.tags + j(c) : j(c)
            }
        }
        a = h.mediaparser.parseGroup(b, a);
        a = h.jwparser.parseEntry(b, a);
        return new jwplayer.playlist.item(a)
    }
    var l = jwplayer.utils,
    j = h.textContent,
    g = h.getChildNode,
    b = h.numChildren,
    e = h.localName;
    h.rssparser = {};
    h.rssparser.parse = function(j) {
        for (var a = [], d = 0; d < b(j); d++) {
            var f = g(j, d);
            if ("channel" == e(f).toLowerCase()) for (var h = 0; h < b(f); h++) {
                var k = g(f, h);
                "item" == e(k).toLowerCase() && a.push(c(k))
            }
        }
        return a
    }
} (jwplayer.parsers),
function(h) {
    h.playlist = function(c) {
        var l = [];
        if ("array" == h.utils.typeOf(c)) for (var j = 0; j < c.length; j++) l.push(new h.playlist.item(c[j]));
        else l.push(new h.playlist.item(c));
        return l
    }
} (jwplayer),
function(h) {
    var c = h.item = function(l) {
        var j = jwplayer.utils,
        g = j.extend({},
        c.defaults, l),
        b,
        e;
        g.tracks = l && j.exists(l.tracks) ? l.tracks: [];
        0 === g.sources.length && (g.sources = [new h.source(g)]);
        for (b = 0; b < g.sources.length; b++) e = g.sources[b]["default"],
        g.sources[b]["default"] = e ? "true" == e.toString() : !1,
        g.sources[b] = new h.source(g.sources[b]);
        if (g.captions && !j.exists(l.tracks)) {
            for (l = 0; l < g.captions.length; l++) g.tracks.push(g.captions[l]);
            delete g.captions
        }
        for (b = 0; b < g.tracks.length; b++) g.tracks[b] = new h.track(g.tracks[b]);
        return g
    };
    c.defaults = {
        description: void 0,
        image: void 0,
        mediaid: void 0,
        title: void 0,
        sources: [],
        tracks: []
    }
} (jwplayer.playlist),
function(h) {
    var c = jwplayer,
    l = c.utils,
    j = c.events,
    g = c.parsers;
    h.loader = function() {
        function b(b) {
            try {
                var c = b.responseXML.childNodes;
                b = "";
                for (var e = 0; e < c.length && !(b = c[e], 8 != b.nodeType); e++);
                "xml" == g.localName(b) && (b = b.nextSibling);
                if ("rss" != g.localName(b)) n("Not a valid RSS feed");
                else {
                    var k = new h(g.rssparser.parse(b));
                    a.sendEvent(j.JWPLAYER_PLAYLIST_LOADED, {
                        playlist: k
                    })
                }
            } catch(m) {
                n()
            }
        }
        function c(a) {
            n(a.match(/invalid/i) ? "Not a valid RSS feed": "")
        }
        function n(b) {
            a.sendEvent(j.JWPLAYER_ERROR, {
                message: b ? b: "Error loading file"
            })
        }
        var a = new j.eventdispatcher;
        l.extend(this, a);
        this.load = function(a) {
            l.ajax(a, b, c)
        }
    }
} (jwplayer.playlist),
function(h) {
    var c = jwplayer.utils,
    l = {
        file: void 0,
        label: void 0,
        type: void 0,
        "default": void 0
    };
    h.source = function(j) {
        var g = c.extend({},
        l);
        c.foreach(l,
        function(b) {
            c.exists(j[b]) && (g[b] = j[b], delete j[b])
        });
        g.type && 0 < g.type.indexOf("/") && (g.type = c.extensionmap.mimeType(g.type));
        "m3u8" == g.type && (g.type = "hls");
        "smil" == g.type && (g.type = "rtmp");
        return g
    }
} (jwplayer.playlist),
function(h) {
    var c = jwplayer.utils,
    l = {
        file: void 0,
        label: void 0,
        kind: "captions",
        "default": !1
    };
    h.track = function(j) {
        var g = c.extend({},
        l);
        j || (j = {});
        c.foreach(l,
        function(b) {
            c.exists(j[b]) && (g[b] = j[b], delete j[b])
        });
        return g
    }
} (jwplayer.playlist),
function(h) {
    var c = h.cast = {},
    l = h.utils;
    c.adprovider = function(j, g) {
        function b() {
            f = {
                message: q,
                position: 0,
                duration: -1
            }
        }
        function e(a, b) {
            var d = {
                command: a
            };
            void 0 !== b && (d.args = b);
            g.sendMessage(j, d, n,
            function(a) {
                c.error("message send error", a)
            })
        }
        function n() {}
        var a = new c.provider(j, g),
        d = l.extend(this, a),
        f,
        q = "Loading ad",
        k = 0;
        d.init = function() {
            a.init();
            b()
        };
        d.destroy = function() {
            a.destroy()
        };
        d.updateModel = function(d, e) { (d.tag || d.newstate || d.sequence || d.companions) && c.log("received ad change:", d);
            d.tag && (f.tag && d.tag !== f.tag) && (c.error("ad messages not received in order. new model:", d, "old model:", f), b());
            h.utils.extend(f, d);
            a.updateModel(d, e)
        };
        d.getAdModel = function() {
            var a = l.extend({},
            f);
            a.message = 0 < f.duration ? this.getAdMessage() : q;
            return a
        };
        d.resetAdModel = function() {
            b()
        };
        d.getAdMessage = function() {
            var a = f.message.replace(/xx/gi, "" + Math.min(f.duration | 0, Math.ceil(f.duration - f.position)));
            f.podMessage && 1 < f.podcount && (a = f.podMessage.replace(/__AD_POD_CURRENT__/g, "" + f.sequence).replace(/__AD_POD_LENGTH__/g, "" + f.podcount) + a);
            return a
        };
        d.skipAd = function(a) {
            e("skipAd", {
                tag: a.tag
            })
        };
        d.clickAd = function(a) {
            k = 1 * new Date;
            e("clickAd", {
                tag: a.tag
            })
        };
        d.timeSinceClick = function() {
            return 1 * new Date - k
        }
    }
} (window.jwplayer),
function(h, c) {
    function l(a, b) {
        a[b] && (a[b] = g.getAbsolutePath(a[b]))
    }
    var j = c.cast,
    g = c.utils,
    b = c.events,
    e = b.state,
    n = {};
    j.NS = "urn:x-cast:com.longtailvideo.jwplayer";
    j.availability = null;
    j.available = function(a) {
        a = a || j.availability;
        var b = h.chrome,
        c = "available";
        b.cast && b.cast.ReceiverAvailability && (c = b.cast.ReceiverAvailability.AVAILABLE);
        return a === c
    };
    j.controller = function(a, d) {
        var f, q;
        function k(a, b) {
            var d = {
                command: a
            };
            void 0 !== b && (d.args = b);
            w.sendMessage(j.NS, d, O,
            function(a) {
                j.log("error message", a);
                "Invalid namespace" === a.description && A()
            })
        }
        function m(a) {
            a = !!j.available(a.availability);
            N.available !== a && (N.available = a, t(b.JWPLAYER_CAST_AVAILABLE))
        }
        function r(a) {
            j.log("existing session", a);
            w || (K = a.session, K.addMessageListener(j.NS, x))
        }
        function x(e, f) {
            var g = JSON.parse(f);
            if (!g) throw "Message not proper JSON";
            if (g.reconcile) {
                K.removeMessageListener(j.NS, x);
                var m = g.diff,
                h = K;
                if (!m.id || !g.appid || !g.pageUrl) m.id = c().id,
                g.appid = J.appid,
                g.pageUrl = Q,
                K = w = null;
                m.id === a.id && (g.appid === J.appid && g.pageUrl === Q) && (w || (a.jwInstreamState() && a.jwInstreamDestroy(!0), v(h), d.sendEvent(b.JWPLAYER_PLAYER_STATE, {
                    oldstate: m.oldstate,
                    newstate: m.newstate
                })), H(g));
                K = null
            }
        }
        function u(a) {
            N.active = !!a;
            a = N;
            var d;
            d = w && w.receiver ? w.receiver.friendlyName: "";
            a.deviceName = d;
            t(b.JWPLAYER_CAST_SESSION, {})
        }
        function t(a) {
            var b = g.extend({},
            N);
            d.sendEvent(a, b)
        }
        function p(a) {
            var b = h.chrome;
            a.code !== b.cast.ErrorCode.CANCEL && (j.log("Cast Session Error:", a, w), a.code === b.cast.ErrorCode.SESSION_ERROR && A())
        }
        function A() {
            w ? (B(), w.stop(F, G)) : F()
        }
        function G(a) {
            j.error("Cast Session Stop error:", a, w);
            F()
        }
        function v(m) {
            w = m;
            w.addMessageListener(j.NS, D);
            w.addUpdateListener(C);
            a.jwPause(!0);
            a.jwSetFullscreen(!1);
            M = d.getVideo();
            f = d.volume;
            q = d.mute;
            z = new j.provider(k);
            z.init();
            d.setVideo(z);
            a.jwPlay = function(a) { ! 1 === a ? z.pause() : z.play()
            };
            a.jwPause = function(b) {
                a.jwPlay( !! b)
            };
            a.jwLoad = function(a) {
                "number" === g.typeOf(a) && d.setItem(a);
                z.load(a)
            };
            a.jwPlaylistItem = function(a) {
                "number" === g.typeOf(a) && d.setItem(a);
                z.playlistItem(a)
            };
            a.jwPlaylistNext = function() {
                a.jwPlaylistItem(d.item + 1)
            };
            a.jwPlaylistPrev = function() {
                a.jwPlaylistItem(d.item - 1)
            };
            a.jwSetVolume = function(a) {
                g.exists(a) && (a = Math.min(Math.max(0, a), 100) | 0, R(a) && (a = Math.max(0, Math.min(a / 100, 1)), w.setReceiverVolumeLevel(a, I,
                function(a) {
                    j.error("set volume error", a);
                    I()
                })))
            };
            a.jwSetMute = function(a) {
                g.exists(a) || (a = !L.mute);
                P(a) && w.setReceiverMuted( !! a, I,
                function(a) {
                    j.error("set muted error", a);
                    I()
                })
            };
            a.jwGetVolume = function() {
                return L.volume | 0
            };
            a.jwGetMute = function() {
                return !! L.mute
            };
            a.jwIsBeforePlay = function() {
                return ! 1
            };
            var l = a.jwSetCurrentCaptions;
            a.jwSetCurrentCaptions = function(a) {
                l(a);
                z.sendCommand("caption", a)
            };
            a.jwSkipAd = function(a) {
                y && (y.skipAd(a), a = y.getAdModel(), a.complete = !0, d.sendEvent(b.JWPLAYER_CAST_AD_CHANGED, a))
            };
            a.jwClickAd = function(f) {
                if (y && 300 < y.timeSinceClick() && (y.clickAd(f), d.state !== e.PAUSED)) {
                    var g = {
                        tag: f.tag
                    };
                    f.sequence && (g.sequence = f.sequence);
                    f.podcount && (g.podcount = f.podcount);
                    c(a.id).dispatchEvent(b.JWPLAYER_AD_CLICK, g);
                    h.open(f.clickthrough)
                }
            };
            a.jwPlayAd = a.jwPauseAd = a.jwSetControls = a.jwForceState = a.jwReleaseState = a.jwSetFullscreen = a.jwDetachMedia = a.jwAttachMedia = O;
            var n = c(a.id).plugins;
            n.vast && n.vast.jwPauseAd !== O && (S = {
                jwPlayAd: n.vast.jwPlayAd,
                jwPauseAd: n.vast.jwPauseAd
            },
            n.vast.jwPlayAd = n.vast.jwPauseAd = O);
            I();
            u(!0);
            m !== K && z.setup(E(), d)
        }
        function C(a) {
            j.log("Cast Session status", a);
            a ? I() : (z.sendEvent(b.JWPLAYER_PLAYER_STATE, {
                oldstate: d.state,
                newstate: e.BUFFERING
            }), F())
        }
        function F() {
            w && (B(), w = null);
            if (M) {
                delete a.jwSkipAd;
                delete a.jwClickAd;
                a.initializeAPI();
                var m = c(a.id).plugins;
                m.vast && g.extend(m.vast, S);
                d.volume = f;
                d.mute = q;
                d.setVideo(M);
                d.duration = 0;
                z && (z.destroy(), z = null);
                y && (y.destroy(), y = null);
                d.state !== e.IDLE ? g.isIPad() || g.isIPod() ? (a.jwStop(!0), M.sendEvent(b.JWPLAYER_PLAYER_STATE, {
                    oldstate: e.BUFFERING,
                    newstate: e.IDLE
                })) : (d.state = e.IDLE, a.jwPlay(!0), a.jwSeek(d.position)) : M.sendEvent(b.JWPLAYER_PLAYER_STATE, {
                    oldstate: e.BUFFERING,
                    newstate: e.IDLE
                });
                M = null
            }
            u(!1)
        }
        function B() {
            w.removeUpdateListener(C);
            w.removeMessageListener(j.NS, D)
        }
        function D(a, b) {
            var d = JSON.parse(b);
            if (!d) throw "Message not proper JSON";
            H(d)
        }
        function H(c) {
            if ("state" === c.type) {
                if (y && (c.diff.newstate || c.diff.position)) y.destroy(),
                y = null,
                d.setVideo(z),
                d.sendEvent(b.JWPLAYER_CAST_AD_CHANGED, {
                    done: !0
                });
                z.updateModel(c.diff, c.type);
                c = c.diff;
                void 0 !== c.item && d.item !== c.item && (d.item = c.item, d.sendEvent(b.JWPLAYER_PLAYLIST_ITEM, {
                    index: d.item
                }))
            } else if ("ad" === c.type) {
                null === y && (y = new j.adprovider(j.NS, w), y.init(), d.setVideo(y));
                y.updateModel(c.diff, c.type);
                var e = y.getAdModel();
                c.diff.clickthrough && (e.onClick = a.jwClickAd);
                c.diff.skipoffset && (e.onSkipAd = a.jwSkipAd);
                d.sendEvent(b.JWPLAYER_CAST_AD_CHANGED, e);
                c.diff.complete && y.resetAdModel()
            } else "connection" === c.type ? !0 === c.closed && A() : j.error("received unhandled message", c.type, c)
        }
        function E() {
            var a = g.extend({},
            d.config);
            a.cast = g.extend({
                pageUrl: Q
            },
            J);
            for (var b = "base autostart controls fallback fullscreen width height mobilecontrols modes playlistlayout playlistposition playlistsize primary stretching sharing related ga skin logo listbar".split(" "), c = b.length; c--;) delete a[b[c]];
            b = a.plugins;
            delete a.plugins;
            for (var e in b) if (b.hasOwnProperty(e)) {
                var f = b[e];
                if (f.client && (/[\.\/]/.test(f.client) && l(f, "client"), -1 < f.client.indexOf("vast"))) {
                    c = a;
                    f = g.extend({},
                    f);
                    f.client = "vast";
                    delete f.companiondiv;
                    if (f.schedule) {
                        var m = void 0;
                        for (m in f.schedule) f.schedule.hasOwnProperty(m) && l(f.schedule[m].ad || f.schedule[m], "tag")
                    }
                    l(f, "tag");
                    c.advertising = f
                }
            }
            d.position && (a.position = d.position);
            0 < d.item && (a.item = d.item);
            a.captionLabel = g.getCookies().captionLabel;
            return a
        }
        function I() {
            if (w && w.receiver) {
                var a = w.receiver.volume;
                if (a) {
                    var b = 100 * a.level | 0;
                    P( !! a.muted);
                    R(b)
                }
            }
        }
        function R(a) {
            var c = L.volume !== a;
            c && (L.volume = a, z.sendEvent(b.JWPLAYER_MEDIA_VOLUME, {
                volume: a
            }));
            return c
        }
        function P(a) {
            var c = L.mute !== a;
            c && (L.mute = a, z.sendEvent(b.JWPLAYER_MEDIA_MUTE, {
                mute: a
            }));
            return c
        }
        function O() {}
        var w = null,
        N = {
            available: !1,
            active: !1,
            deviceName: ""
        },
        L = {
            volume: null,
            mute: null
        },
        Q = g.getAbsolutePath(h.location.href),
        J,
        z = null,
        y = null,
        M = null;
        f = d.volume;
        q = d.mute;
        var K = null,
        S = null;
        J = g.extend({},
        n, d.cast);
        l(J, "loadscreen");
        l(J, "endscreen");
        l(J, "logo");
        if (J.appid && (!h.cast || !h.cast.receiver)) j.loader.addEventListener("availability", m),
        j.loader.addEventListener("session", r),
        j.loader.initialize(J.appid);
        this.startCasting = function() {
            w || a.jwInstreamState() || h.chrome.cast.requestSession(v, p)
        };
        this.stopCasting = A
    };
    j.log = function() {
        if (j.debug) {
            var a = Array.prototype.slice.call(arguments, 0);
            console.log.apply(console, a)
        }
    };
    j.error = function() {
        var a = Array.prototype.slice.call(arguments, 0);
        console.error.apply(console, a)
    }
} (window, jwplayer),
function(h, c) {
    function l() {
        c && c.cast && c.cast.isAvailable && !a.apiConfig ? (a.apiConfig = new c.cast.ApiConfig(new c.cast.SessionRequest(m), e, n, c.cast.AutoJoinPolicy.ORIGIN_SCOPED), c.cast.initialize(a.apiConfig, b, g)) : 15 > k++&&setTimeout(l, 1E3)
    }
    function j() {
        q && (q.resetEventListeners(), q = null)
    }
    function g() {
        a.apiConfig = null
    }
    function b() {}
    function e(b) {
        a.loader.sendEvent("session", {
            session: b
        });
        b.sendMessage(a.NS, {
            whoami: 1
        })
    }
    function n(b) {
        a.availability = b;
        a.loader.sendEvent("availability", {
            availability: b
        })
    }
    window.chrome = c;
    var a = h.cast,
    d = h.utils,
    f = h.events,
    q, k = 0,
    m = null;
    a.loader = d.extend({
        initialize: function(b) {
            m = b;
            null !== a.availability ? a.loader.sendEvent("availability", {
                availability: a.availability
            }) : c && c.cast ? l() : q || (q = new d.scriptloader("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"), q.addEventListener(f.ERROR, j), q.addEventListener(f.COMPLETE, l), q.load())
        }
    },
    new f.eventdispatcher("cast.loader"))
} (window.jwplayer, window.chrome || {}),
function(h) {
    function c(b) {
        return function() {
            return b
        }
    }
    function l() {}
    var j = h.cast,
    g = h.utils,
    b = h.events,
    e = b.state;
    j.provider = function(h) {
        function a(a) {
            q.oldstate = q.newstate;
            q.newstate = a;
            d.sendEvent(b.JWPLAYER_PLAYER_STATE, {
                oldstate: q.oldstate,
                newstate: q.newstate
            })
        }
        var d = g.extend(this, new b.eventdispatcher("cast.provider")),
        f = -1,
        q = {
            newstate: e.IDLE,
            oldstate: e.IDLE,
            buffer: 0,
            position: 0,
            duration: -1,
            audioMode: !1
        };
        d.isCaster = !0;
        d.init = function() {};
        d.destroy = function() {
            clearTimeout(f);
            _castSession = null
        };
        d.updateModel = function(a, c) {
            a.newstate && (q.newstate = a.newstate, q.oldstate = a.oldstate || q.oldstate, d.sendEvent(b.JWPLAYER_PLAYER_STATE, {
                oldstate: q.oldstate,
                newstate: q.newstate
            }));
            if ("ad" !== c) {
                if (void 0 !== a.position || void 0 !== a.duration) void 0 !== a.position && (q.position = a.position),
                void 0 !== a.duration && (q.duration = a.duration),
                d.sendEvent(b.JWPLAYER_MEDIA_TIME, {
                    position: q.position,
                    duration: q.duration
                });
                void 0 !== a.buffer && (q.buffer = a.buffer, d.sendEvent(b.JWPLAYER_MEDIA_BUFFER, {
                    bufferPercent: q.buffer
                }))
            }
        };
        d.supportsFullscreen = function() {
            return ! 1
        };
        d.setup = function(b, c) {
            c.state && (q.newstate = c.state);
            void 0 !== c.buffer && (q.buffer = c.buffer);
            void 0 !== b.position && (q.position = b.position);
            void 0 !== b.duration && (q.duration = b.duration);
            a(e.BUFFERING);
            h("setup", b)
        };
        d.playlistItem = function(b) {
            a(e.BUFFERING);
            h("item", b)
        };
        d.load = function(b) {
            a(e.BUFFERING);
            h("load", b)
        };
        d.stop = function() {
            clearTimeout(f);
            f = setTimeout(function() {
                a(e.IDLE);
                h("stop")
            },
            0)
        };
        d.play = function() {
            h("play")
        };
        d.pause = function() {
            a(e.PAUSED);
            h("pause")
        };
        d.seek = function(c) {
            a(e.BUFFERING);
            d.sendEvent(b.JWPLAYER_MEDIA_SEEK, {
                position: q.position,
                offset: c
            });
            h("seek", c)
        };
        d.audioMode = function() {
            return q.audioMode
        };
        d.sendCommand = function(a, b) {
            h(a, b)
        };
        d.detachMedia = function() {
            j.error("detachMedia called while casting");
            return document.createElement("video")
        };
        d.attachMedia = function() {
            j.error("attachMedia called while casting")
        };
        var k;
        d.setContainer = function(a) {
            k = a
        };
        d.getContainer = function() {
            return k
        };
        d.volume = d.mute = d.setControls = d.setCurrentQuality = d.remove = d.resize = d.seekDrag = d.addCaptions = d.resetCaptions = d.setVisibility = d.fsCaptions = l;
        d.setFullScreen = d.getFullScreen = d.checkComplete = c(!1);
        d.getWidth = d.getHeight = d.getCurrentQuality = c(0);
        d.getQualityLevels = c(["Auto"])
    }
} (window.jwplayer),
function(h) {
    function c(a, b) {
        j.foreach(b,
        function(b, c) {
            var e = a[b];
            "function" == typeof e && e.call(a, c)
        })
    }
    function l(a, b, c) {
        var e = a.style;
        e.backgroundColor = "#000";
        e.color = "#FFF";
        e.width = j.styleDimension(c.width);
        e.height = j.styleDimension(c.height);
        e.display = "table";
        e.opacity = 1;
        c = document.createElement("p");
        e = c.style;
        e.verticalAlign = "middle";
        e.textAlign = "center";
        e.display = "table-cell";
        e.font = "15px/20px Arial, Helvetica, sans-serif";
        c.innerHTML = b.replace(":", ":\x3cbr\x3e");
        a.innerHTML = "";
        a.appendChild(c)
    }
    var j = h.utils,
    g = h.events,
    b = !0,
    e = !1,
    n = document,
    a = h.embed = function(d) {
        function f() {
            if (!B) if ("array" === j.typeOf(u.playlist) && 2 > u.playlist.length && (0 === u.playlist.length || !u.playlist[0].sources || 0 === u.playlist[0].sources.length)) m();
            else if (!F) if ("string" === j.typeOf(u.playlist)) C = new h.playlist.loader,
            C.addEventListener(g.JWPLAYER_PLAYLIST_LOADED,
            function(a) {
                u.playlist = a.playlist;
                F = e;
                f()
            }),
            C.addEventListener(g.JWPLAYER_ERROR,
            function(a) {
                F = e;
                m(a)
            }),
            F = b,
            C.load(u.playlist);
            else if (v.getStatus() == j.loaderstatus.COMPLETE) {
                for (var k = 0; k < u.modes.length; k++) if (u.modes[k].type && a[u.modes[k].type]) {
                    var l = j.extend({},
                    u),
                    n = new a[u.modes[k].type](E, u.modes[k], l, v, d);
                    if (n.supportsConfig()) return n.addEventListener(g.ERROR, q),
                    n.embed(),
                    j.css("object.jwswf, .jwplayer:focus", {
                        outline: "none"
                    }),
                    j.css(".jw-tab-focus:focus", {
                        outline: "solid 2px #0B7EF4"
                    }),
                    c(d, l.events),
                    d
                }
                var p;
                u.fallback ? (p = "No suitable players found and fallback enabled", D = setTimeout(function() {
                    r(p, b)
                },
                10), j.log(p), new a.download(E, u, m)) : (p = "No suitable players found and fallback disabled", r(p, e), j.log(p), E.parentNode.replaceChild(H, E))
            }
        }
        function q(a) {
            x(A + a.message)
        }
        function k(a) {
            d.dispatchEvent(g.JWPLAYER_ERROR, {
                message: "Could not load plugin: " + a.message
            })
        }
        function m(a) {
            a && a.message ? x("Error loading playlist: " + a.message) : x(A + "No playable sources found")
        }
        function r(a, b) {
            D && (clearTimeout(D), D = null);
            D = setTimeout(function() {
                D = null;
                d.dispatchEvent(g.JWPLAYER_SETUP_ERROR, {
                    message: a,
                    fallback: b
                })
            },
            0)
        }
        function x(a) {
            B || (u.fallback ? (B = b, l(E, a, u), r(a, b)) : r(a, e))
        }
        var u = new a.config(d.config),
        t = u.width,
        p = u.height,
        A = "Error loading player: ",
        G = n.getElementById(d.id),
        v = h.plugins.loadPlugins(d.id, u.plugins),
        C,
        F = e,
        B = e,
        D = null,
        H = null;
        u.fallbackDiv && (H = u.fallbackDiv, delete u.fallbackDiv);
        u.id = d.id;
        u.aspectratio ? d.config.aspectratio = u.aspectratio: delete d.config.aspectratio;
        var E = n.createElement("div");
        E.id = G.id;
        E.style.width = 0 < t.toString().indexOf("%") ? t: t + "px";
        E.style.height = 0 < p.toString().indexOf("%") ? p: p + "px";
        G.parentNode.replaceChild(E, G);
        this.embed = function() {
            B || (v.addEventListener(g.COMPLETE, f), v.addEventListener(g.ERROR, k), v.load())
        };
        this.destroy = function() {
            v && (v.destroy(), v = null);
            C && (C.resetEventListeners(), C = null)
        };
        this.errorScreen = x;
        return this
    };
    h.embed.errorScreen = l
} (jwplayer),
function(h) {
    function c(b) {
        if (b.playlist) for (var c = 0; c < b.playlist.length; c++) b.playlist[c] = new g(b.playlist[c]);
        else {
            var h = {};
            j.foreach(g.defaults,
            function(a) {
                l(b, h, a)
            });
            h.sources || (b.levels ? (h.sources = b.levels, delete b.levels) : (c = {},
            l(b, c, "file"), l(b, c, "type"), h.sources = c.file ? [c] : []));
            b.playlist = [new g(h)]
        }
    }
    function l(b, c, g) {
        j.exists(b[g]) && (c[g] = b[g], delete b[g])
    }
    var j = h.utils,
    g = h.playlist.item; (h.embed.config = function(b) {
        var e = {
            fallback: !0,
            height: 270,
            primary: "html5",
            width: 480,
            base: b.base ? b.base: j.getScriptPath("jwplayer.js"),
            aspectratio: ""
        };
        b = j.extend(e, h.defaults, b);
        var e = {
            type: "html5",
            src: b.base + "jwplayer.html5.js"
        },
        g = {
            type: "flash",
            src: b.base + "jwplayer.flash.swf"
        };
        b.modes = "flash" == b.primary ? [g, e] : [e, g];
        b.listbar && (b.playlistsize = b.listbar.size, b.playlistposition = b.listbar.position, b.playlistlayout = b.listbar.layout);
        b.flashplayer && (g.src = b.flashplayer);
        b.html5player && (e.src = b.html5player);
        c(b);
        g = b.aspectratio;
        if ("string" != typeof g || !j.exists(g)) e = 0;
        else {
            var a = g.indexOf(":"); - 1 == a ? e = 0 : (e = parseFloat(g.substr(0, a)), g = parseFloat(g.substr(a + 1)), e = 0 >= e || 0 >= g ? 0 : 100 * (g / e) + "%")
        } - 1 == b.width.toString().indexOf("%") ? delete b.aspectratio: e ? b.aspectratio = e: delete b.aspectratio;
        return b
    }).addConfig = function(b, e) {
        c(e);
        return j.extend(b, e)
    }
} (jwplayer),
function(h) {
    var c = h.utils,
    l = document;
    h.embed.download = function(j, g, b) {
        function e(a, b) {
            for (var d = l.querySelectorAll(a), e = 0; e < d.length; e++) c.foreach(b,
            function(a, b) {
                d[e].style[a] = b
            })
        }
        function h(a, b, c) {
            a = l.createElement(a);
            b && (a.className = "jwdownload" + b);
            c && c.appendChild(a);
            return a
        }
        var a = c.extend({},
        g),
        d = a.width ? a.width: 480,
        f = a.height ? a.height: 320,
        q;
        g = g.logo ? g.logo: {
            prefix: c.repo(),
            file: "logo.png",
            margin: 10
        };
        var k, m, r, a = a.playlist,
        x, u = ["mp4", "aac", "mp3"];
        if (a && a.length) {
            x = a[0];
            q = x.sources;
            for (a = 0; a < q.length; a++) {
                var t = q[a],
                p = t.type ? t.type: c.extensionmap.extType(c.extension(t.file));
                t.file && c.foreach(u,
                function(a) {
                    p == u[a] ? (k = t.file, m = x.image) : c.isYouTube(t.file) && (r = t.file)
                })
            }
            k ? (q = k, b = m, j && (a = h("a", "display", j), h("div", "icon", a), h("div", "logo", a), q && a.setAttribute("href", c.getAbsolutePath(q))), a = "#" + j.id + " .jwdownload", j.style.width = "", j.style.height = "", e(a + "display", {
                width: c.styleDimension(Math.max(320, d)),
                height: c.styleDimension(Math.max(180, f)),
                background: "black center no-repeat " + (b ? "url(" + b + ")": ""),
                backgroundSize: "contain",
                position: "relative",
                border: "none",
                display: "block"
            }), e(a + "display div", {
                position: "absolute",
                width: "100%",
                height: "100%"
            }), e(a + "logo", {
                top: g.margin + "px",
                right: g.margin + "px",
                background: "top right no-repeat url(" + g.prefix + g.file + ")"
            }), e(a + "icon", {
                background: "center no-repeat url()"
            })) : r ? (g = r, j = h("iframe", "", j), j.src = "http://www.youtube.com/embed/" + c.youTubeID(g), j.width = d, j.height = f, j.style.border = "none") : b()
        }
    }
} (jwplayer),
function(h) {
    var c = h.utils,
    l = h.events,
    j = {}; (h.embed.flash = function(b, e, n, a, d) {
        function f(a, b, c) {
            var d = document.createElement("param");
            d.setAttribute("name", b);
            d.setAttribute("value", c);
            a.appendChild(d)
        }
        function q(a, b, c) {
            return function() {
                try {
                    c && document.getElementById(d.id + "_wrapper").appendChild(b);
                    var e = document.getElementById(d.id).getPluginConfig("display");
                    "function" == typeof a.resize && a.resize(e.width, e.height);
                    b.style.left = e.x;
                    b.style.top = e.h
                } catch(f) {}
            }
        }
        function k(a) {
            if (!a) return {};
            var b = {},
            d = [];
            c.foreach(a,
            function(a, e) {
                var f = c.getPluginName(a);
                d.push(a);
                c.foreach(e,
                function(a, c) {
                    b[f + "." + a] = c
                })
            });
            b.plugins = d.join(",");
            return b
        }
        var m = new h.events.eventdispatcher,
        r = c.flashVersion();
        c.extend(this, m);
        this.embed = function() {
            n.id = d.id;
            if (10 > r) return m.sendEvent(l.ERROR, {
                message: "Flash version must be 10.0 or greater"
            }),
            !1;
            var g, h, t = d.config.listbar,
            p = c.extend({},
            n);
            if (b.id + "_wrapper" == b.parentNode.id) g = document.getElementById(b.id + "_wrapper");
            else {
                g = document.createElement("div");
                h = document.createElement("div");
                h.style.display = "none";
                h.id = b.id + "_aspect";
                g.id = b.id + "_wrapper";
                g.style.position = "relative";
                g.style.display = "block";
                g.style.width = c.styleDimension(p.width);
                g.style.height = c.styleDimension(p.height);
                if (d.config.aspectratio) {
                    var A = parseFloat(d.config.aspectratio);
                    h.style.display = "block";
                    h.style.marginTop = d.config.aspectratio;
                    g.style.height = "auto";
                    g.style.display = "inline-block";
                    t && ("bottom" == t.position ? h.style.paddingBottom = t.size + "px": "right" == t.position && (h.style.marginBottom = -1 * t.size * (A / 100) + "px"))
                }
                b.parentNode.replaceChild(g, b);
                g.appendChild(b);
                g.appendChild(h)
            }
            g = a.setupPlugins(d, p, q);
            0 < g.length ? c.extend(p, k(g.plugins)) : delete p.plugins;
            "undefined" != typeof p["dock.position"] && "false" == p["dock.position"].toString().toLowerCase() && (p.dock = p["dock.position"], delete p["dock.position"]);
            g = p.wmode ? p.wmode: p.height && 40 >= p.height ? "transparent": "opaque";
            h = "height width modes events primary base fallback volume".split(" ");
            for (t = 0; t < h.length; t++) delete p[h[t]];
            h = c.getCookies();
            c.foreach(h,
            function(a, b) {
                "undefined" == typeof p[a] && (p[a] = b)
            });
            h = window.location.href.split("/");
            h.splice(h.length - 1, 1);
            h = h.join("/");
            p.base = h + "/";
            j[b.id] = p;
            c.isMSIE() ? (h = '\x3cobject classid\x3d"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" " width\x3d"100%" height\x3d"100%"id\x3d"' + b.id + '" name\x3d"' + b.id + '" tabindex\x3d0""\x3e', h += '\x3cparam name\x3d"movie" value\x3d"' + e.src + '"\x3e', h += '\x3cparam name\x3d"allowfullscreen" value\x3d"true"\x3e\x3cparam name\x3d"allowscriptaccess" value\x3d"always"\x3e', h += '\x3cparam name\x3d"seamlesstabbing" value\x3d"true"\x3e', h += '\x3cparam name\x3d"wmode" value\x3d"' + g + '"\x3e', h += '\x3cparam name\x3d"bgcolor" value\x3d"#000000"\x3e', h += "\x3c/object\x3e", b.outerHTML = h, g = document.getElementById(b.id)) : (h = document.createElement("object"), h.setAttribute("type", "application/x-shockwave-flash"), h.setAttribute("data", e.src), h.setAttribute("width", "100%"), h.setAttribute("height", "100%"), h.setAttribute("bgcolor", "#000000"), h.setAttribute("id", b.id), h.setAttribute("name", b.id), h.className = "jwswf", f(h, "allowfullscreen", "true"), f(h, "allowscriptaccess", "always"), f(h, "seamlesstabbing", "true"), f(h, "wmode", g), b.parentNode.replaceChild(h, b), g = h);
            d.config.aspectratio && (g.style.position = "absolute");
            d.container = g;
            d.setPlayer(g, "flash")
        };
        this.supportsConfig = function() {
            if (r) if (n) {
                if ("string" == c.typeOf(n.playlist)) return ! 0;
                try {
                    var a = n.playlist[0].sources;
                    if ("undefined" == typeof a) return ! 0;
                    for (var b = 0; b < a.length; b++) if (a[b].file && g(a[b].file, a[b].type)) return ! 0
                } catch(d) {}
            } else return ! 0;
            return ! 1
        }
    }).getVars = function(b) {
        return j[b]
    };
    var g = h.embed.flashCanPlay = function(b, e) {
        if (c.isYouTube(b) || c.isRtmp(b, e) || "hls" == e) return ! 0;
        var g = c.extensionmap[e ? e: c.extension(b)];
        return ! g ? !1 : !!g.flash
    }
} (jwplayer),
function(h) {
    function c(b, c, g) {
        if (null !== navigator.userAgent.match(/BlackBerry/i)) return ! 1;
        if ("youtube" === c || l.isYouTube(b)) return ! 0;
        var a = l.extension(b);
        c = c || j.extType(a);
        if ("hls" === c) if (g) {
            g = l.isAndroidNative;
            if (g(2) || g(3) || g("4.0")) return ! 1;
            if (l.isAndroid()) return ! 0
        } else if (l.isAndroid()) return ! 1;
        if (l.isRtmp(b, c)) return ! 1;
        b = j[c] || j[a];
        if (!b || b.flash && !b.html5) return ! 1;
        var d;
        a: if (b = b.html5) {
            try {
                d = !!h.vid.canPlayType(b);
                break a
            } catch(f) {}
            d = !1
        } else d = !0;
        return d
    }
    var l = h.utils,
    j = l.extensionmap,
    g = h.events;
    h.embed.html5 = function(b, e, j, a, d) {
        function f(a, c, d) {
            return function() {
                try {
                    var e = document.querySelector("#" + b.id + " .jwmain");
                    d && e.appendChild(c);
                    "function" == typeof a.resize && (a.resize(e.clientWidth, e.clientHeight), setTimeout(function() {
                        a.resize(e.clientWidth, e.clientHeight)
                    },
                    400));
                    c.left = e.style.left;
                    c.top = e.style.top
                } catch(f) {}
            }
        }
        function q(a) {
            k.sendEvent(a.type, {
                message: "HTML5 player not found"
            })
        }
        var k = this,
        m = new g.eventdispatcher;
        l.extend(k, m);
        k.embed = function() {
            if (h.html5) {
                a.setupPlugins(d, j, f);
                b.innerHTML = "";
                var c = h.utils.extend({},
                j);
                delete c.volume;
                c = new h.html5.player(c);
                d.container = document.getElementById(d.id);
                d.setPlayer(c, "html5")
            } else c = new l.scriptloader(e.src),
            c.addEventListener(g.ERROR, q),
            c.addEventListener(g.COMPLETE, k.embed),
            c.load()
        };
        k.supportsConfig = function() {
            if (h.vid.canPlayType) try {
                if ("string" == l.typeOf(j.playlist)) return ! 0;
                for (var a = j.playlist[0].sources, b = 0; b < a.length; b++) if (c(a[b].file, a[b].type, j.androidhls)) return ! 0
            } catch(d) {}
            return ! 1
        }
    };
    h.embed.html5CanPlay = c
} (jwplayer),
function(h) {
    var c = h.embed,
    l = h.utils,
    j = /\.(js|swf)$/;
    h.embed = l.extend(function(g) {
        function b() {
            t = "Adobe SiteCatalyst Error: Could not find Media Module"
        }
        var e = l.repo(),
        n = l.extend({},
        h.defaults),
        a = l.extend({},
        n, g.config),
        d = g.config,
        f = a.plugins,
        q = a.analytics,
        k = e + "jwpsrv.js",
        m = e + "sharing.js",
        r = e + "related.js",
        x = e + "gapro.js",
        n = h.key ? h.key: n.key,
        u = (new h.utils.key(n)).edition(),
        t,
        f = f ? f: {};
        "ads" == u && a.advertising && (j.test(a.advertising.client) ? f[a.advertising.client] = a.advertising: f[e + a.advertising.client + ".js"] = a.advertising);
        delete d.advertising;
        d.key = n;
        a.analytics && j.test(a.analytics.client) && (k = a.analytics.client);
        delete d.analytics;
        q && !("ads" === u || "enterprise" === u) && delete q.enabled;
        if ("free" == u || !q || !1 !== q.enabled) f[k] = q ? q: {};
        delete f.sharing;
        delete f.related;
        switch (u) {
        case "ads":
        case "enterprise":
            if (d.sitecatalyst) try {
                window.s && window.s.hasOwnProperty("Media") ? new h.embed.sitecatalyst(g) : b()
            } catch(p) {
                b()
            }
        case "premium":
            a.related && (j.test(a.related.client) && (r = a.related.client), f[r] = a.related),
            a.ga && (j.test(a.ga.client) && (x = a.ga.client), f[x] = a.ga);
        case "pro":
            a.sharing && (j.test(a.sharing.client) && (m = a.sharing.client), f[m] = a.sharing),
            a.skin && (d.skin = a.skin.replace(/^(beelden|bekle|five|glow|modieus|roundster|stormtrooper|vapor)$/i, l.repo() + "skins/$1.xml"))
        }
        d.plugins = f;
        g.config = d;
        g = new c(g);
        t && g.errorScreen(t);
        return g
    },
    h.embed)
} (jwplayer),
function(h) {
    var c = jwplayer.utils;
    h.sitecatalyst = function(h) {
        function j(b) {
            a.debug && c.log(b)
        }
        function g(a) {
            a = a.split("/");
            a = a[a.length - 1];
            a = a.split("?");
            return a[0]
        }
        function b() {
            if (!m) {
                m = !0;
                var a = n.getPosition();
                j("stop: " + f + " : " + a);
                s.Media.stop(f, a)
            }
        }
        function e() {
            r || (b(), r = !0, j("close: " + f), s.Media.close(f), x = !0, k = 0)
        }
        var n = h,
        a = c.extend({},
        n.config.sitecatalyst),
        d = {
            onPlay: function() {
                if (!x) {
                    var a = n.getPosition();
                    m = !1;
                    j("play: " + f + " : " + a);
                    s.Media.play(f, a)
                }
            },
            onPause: b,
            onBuffer: b,
            onIdle: e,
            onPlaylistItem: function(b) {
                try {
                    x = !0;
                    e();
                    k = 0;
                    var d;
                    if (a.mediaName) d = a.mediaName;
                    else {
                        var h = n.getPlaylistItem(b.index);
                        d = h.title ? h.title: h.file ? g(h.file) : h.sources && h.sources.length ? g(h.sources[0].file) : ""
                    }
                    f = d;
                    q = a.playerName ? a.playerName: n.id
                } catch(j) {
                    c.log(j)
                }
            },
            onTime: function() {
                if (x) {
                    var a = n.getDuration();
                    if ( - 1 == a) return;
                    r = m = x = !1;
                    j("open: " + f + " : " + a + " : " + q);
                    s.Media.open(f, a, q);
                    j("play: " + f + " : 0");
                    s.Media.play(f, 0)
                }
                a = n.getPosition();
                if (3 <= Math.abs(a - k)) {
                    var b = k;
                    j("seek: " + b + " to " + a);
                    j("stop: " + f + " : " + b);
                    s.Media.stop(f, b);
                    j("play: " + f + " : " + a);
                    s.Media.play(f, a)
                }
                k = a
            },
            onComplete: e
        },
        f,
        q,
        k,
        m = !0,
        r = !0,
        x;
        c.foreach(d,
        function(a) {
            n[a](d[a])
        })
    }
} (jwplayer.embed),
function(h, c) {
    var l = [],
    j = h.utils,
    g = h.events,
    b = g.state,
    e = document,
    n = "getBuffer getCaptionsList getControls getCurrentCaptions getCurrentQuality getDuration getFullscreen getHeight getLockState getMute getPlaylistIndex getSafeRegion getPosition getQualityLevels getState getVolume getWidth isBeforeComplete isBeforePlay releaseState".split(" "),
    a = "playlistNext stop forceState playlistPrev seek setCurrentCaptions setControls setCurrentQuality setVolume".split(" "),
    d = {
        onBufferChange: g.JWPLAYER_MEDIA_BUFFER,
        onBufferFull: g.JWPLAYER_MEDIA_BUFFER_FULL,
        onError: g.JWPLAYER_ERROR,
        onSetupError: g.JWPLAYER_SETUP_ERROR,
        onFullscreen: g.JWPLAYER_FULLSCREEN,
        onMeta: g.JWPLAYER_MEDIA_META,
        onMute: g.JWPLAYER_MEDIA_MUTE,
        onPlaylist: g.JWPLAYER_PLAYLIST_LOADED,
        onPlaylistItem: g.JWPLAYER_PLAYLIST_ITEM,
        onPlaylistComplete: g.JWPLAYER_PLAYLIST_COMPLETE,
        onReady: g.API_READY,
        onResize: g.JWPLAYER_RESIZE,
        onComplete: g.JWPLAYER_MEDIA_COMPLETE,
        onSeek: g.JWPLAYER_MEDIA_SEEK,
        onTime: g.JWPLAYER_MEDIA_TIME,
        onVolume: g.JWPLAYER_MEDIA_VOLUME,
        onBeforePlay: g.JWPLAYER_MEDIA_BEFOREPLAY,
        onBeforeComplete: g.JWPLAYER_MEDIA_BEFORECOMPLETE,
        onDisplayClick: g.JWPLAYER_DISPLAY_CLICK,
        onControls: g.JWPLAYER_CONTROLS,
        onQualityLevels: g.JWPLAYER_MEDIA_LEVELS,
        onQualityChange: g.JWPLAYER_MEDIA_LEVEL_CHANGED,
        onCaptionsList: g.JWPLAYER_CAPTIONS_LIST,
        onCaptionsChange: g.JWPLAYER_CAPTIONS_CHANGED,
        onAdError: g.JWPLAYER_AD_ERROR,
        onAdClick: g.JWPLAYER_AD_CLICK,
        onAdImpression: g.JWPLAYER_AD_IMPRESSION,
        onAdTime: g.JWPLAYER_AD_TIME,
        onAdComplete: g.JWPLAYER_AD_COMPLETE,
        onAdCompanions: g.JWPLAYER_AD_COMPANIONS,
        onAdSkipped: g.JWPLAYER_AD_SKIPPED,
        onAdPlay: g.JWPLAYER_AD_PLAY,
        onAdPause: g.JWPLAYER_AD_PAUSE,
        onAdMeta: g.JWPLAYER_AD_META,
        onCast: g.JWPLAYER_CAST_SESSION
    },
    f = {
        onBuffer: b.BUFFERING,
        onPause: b.PAUSED,
        onPlay: b.PLAYING,
        onIdle: b.IDLE
    };
    h.api = function(l) {
        function k(a, b) {
            j.foreach(a,
            function(a, c) {
                p[a] = function(a) {
                    return b(c, a)
                }
            })
        }
        function m(a, b) {
            var c = "jw" + b.charAt(0).toUpperCase() + b.slice(1);
            p[b] = function() {
                var b = t.apply(this, [c].concat(Array.prototype.slice.call(arguments, 0)));
                return a ? p: b
            }
        }
        function r(a) {
            F = [];
            D && D.destroy && D.destroy();
            h.api.destroyPlayer(a.id)
        }
        function x(a, b) {
            try {
                a.jwAddEventListener(b, 'function(dat) { jwplayer("' + p.id + '").dispatchEvent("' + b + '", dat); }')
            } catch(c) {
                j.log("Could not add internal listener")
            }
        }
        function u(a, b) {
            A[a] || (A[a] = [], v && C && x(v, a));
            A[a].push(b);
            return p
        }
        function t() {
            if (C) {
                if (v) {
                    var a = Array.prototype.slice.call(arguments, 0),
                    b = a.shift();
                    if ("function" === typeof v[b]) {
                        switch (a.length) {
                        case 6:
                            return v[b](a[0], a[1], a[2], a[3], a[4], a[5]);
                        case 5:
                            return v[b](a[0], a[1], a[2], a[3], a[4]);
                        case 4:
                            return v[b](a[0], a[1], a[2], a[3]);
                        case 3:
                            return v[b](a[0], a[1], a[2]);
                        case 2:
                            return v[b](a[0], a[1]);
                        case 1:
                            return v[b](a[0])
                        }
                        return v[b]()
                    }
                }
                return null
            }
            F.push(arguments)
        }
        var p = this,
        A = {},
        G = {},
        v, C = !1,
        F = [],
        B,
        D,
        H = {},
        E = {};
        p.container = l;
        p.id = l.id;
        p.setup = function(a) {
            if (h.embed) {
                var b = e.getElementById(p.id);
                b && (a.fallbackDiv = b);
                r(p);
                b = h(p.id);
                b.config = a;
                D = new h.embed(b);
                D.embed();
                return b
            }
            return p
        };
        p.getContainer = function() {
            return p.container
        };
        p.addButton = function(a, b, c, d) {
            try {
                E[d] = c,
                t("jwDockAddButton", a, b, "jwplayer('" + p.id + "').callback('" + d + "')", d)
            } catch(e) {
                j.log("Could not add dock button" + e.message)
            }
        };
        p.removeButton = function(a) {
            t("jwDockRemoveButton", a)
        };
        p.callback = function(a) {
            if (E[a]) E[a]()
        };
        p.getMeta = function() {
            return p.getItemMeta()
        };
        p.getPlaylist = function() {
            var a = t("jwGetPlaylist");
            "flash" == p.renderingMode && j.deepReplaceKeyName(a, ["__dot__", "__spc__", "__dsh__", "__default__"], [".", " ", "-", "default"]);
            return a
        };
        p.getPlaylistItem = function(a) {
            j.exists(a) || (a = p.getPlaylistIndex());
            return p.getPlaylist()[a]
        };
        p.getRenderingMode = function() {
            return p.renderingMode
        };
        p.setFullscreen = function(a) {
            j.exists(a) ? t("jwSetFullscreen", a) : t("jwSetFullscreen", !t("jwGetFullscreen"));
            return p
        };
        p.setMute = function(a) {
            j.exists(a) ? t("jwSetMute", a) : t("jwSetMute", !t("jwGetMute"));
            return p
        };
        p.lock = function() {
            return p
        };
        p.unlock = function() {
            return p
        };
        p.load = function(a) {
            t("jwInstreamDestroy");
            h(p.id).plugins.googima && t("jwDestroyGoogima");
            t("jwLoad", a);
            return p
        };
        p.playlistItem = function(a) {
            t("jwPlaylistItem", parseInt(a, 10));
            return p
        };
        p.resize = function(a, b) {
            if ("flash" !== p.renderingMode) t("jwResize", a, b);
            else {
                var c = e.getElementById(p.id + "_wrapper"),
                d = e.getElementById(p.id + "_aspect");
                d && (d.style.display = "none");
                c && (c.style.display = "block", c.style.width = j.styleDimension(a), c.style.height = j.styleDimension(b))
            }
            return p
        };
        p.play = function(a) {
            if (a !== c) return t("jwPlay", a),
            p;
            a = p.getState();
            var d = B && B.getState();
            d ? d === b.IDLE || d === b.PLAYING || d === b.BUFFERING ? t("jwInstreamPause") : t("jwInstreamPlay") : a == b.PLAYING || a == b.BUFFERING ? t("jwPause") : t("jwPlay");
            return p
        };
        p.pause = function(a) {
            a === c ? (a = p.getState(), a == b.PLAYING || a == b.BUFFERING ? t("jwPause") : t("jwPlay")) : t("jwPause", a);
            return p
        };
        p.createInstream = function() {
            return new h.api.instream(this, v)
        };
        p.setInstream = function(a) {
            return B = a
        };
        p.loadInstream = function(a, b) {
            B = p.setInstream(p.createInstream()).init(b);
            B.loadItem(a);
            return B
        };
        p.destroyPlayer = function() {
            t("jwPlayerDestroy")
        };
        p.playAd = function(a) {
            var b = h(p.id).plugins;
            b.vast ? b.vast.jwPlayAd(a) : t("jwPlayAd", a)
        };
        p.pauseAd = function() {
            var a = h(p.id).plugins;
            a.vast ? a.vast.jwPauseAd() : t("jwPauseAd")
        };
        k(f,
        function(a, b) {
            G[a] || (G[a] = [], u(g.JWPLAYER_PLAYER_STATE,
            function(b) {
                var c = b.newstate;
                b = b.oldstate;
                if (c == a) {
                    var d = G[c];
                    if (d) for (var e = 0; e < d.length; e++) {
                        var f = d[e];
                        "function" == typeof f && f.call(this, {
                            oldstate: b,
                            newstate: c
                        })
                    }
                }
            }));
            G[a].push(b);
            return p
        });
        k(d, u);
        j.foreach(n,
        function(a, b) {
            m(!1, b)
        });
        j.foreach(a,
        function(a, b) {
            m(!0, b)
        });
        p.remove = function() {
            if (!C) throw "Cannot call remove() before player is ready";
            r(this)
        };
        p.registerPlugin = function(a, b, c, d) {
            h.plugins.registerPlugin(a, b, c, d)
        };
        p.setPlayer = function(a, b) {
            v = a;
            p.renderingMode = b
        };
        p.detachMedia = function() {
            if ("html5" == p.renderingMode) return t("jwDetachMedia")
        };
        p.attachMedia = function(a) {
            if ("html5" == p.renderingMode) return t("jwAttachMedia", a)
        };
        p.removeEventListener = function(a, b) {
            var c = A[a];
            if (c) for (var d = c.length; d--;) c[d] === b && c.splice(d, 1)
        };
        p.dispatchEvent = function(a, b) {
            var c = A[a];
            if (c) for (var c = c.slice(0), d = j.translateEventResponse(a, b), e = 0; e < c.length; e++) {
                var f = c[e];
                if ("function" === typeof f) try {
                    a === g.JWPLAYER_PLAYLIST_LOADED && j.deepReplaceKeyName(d.playlist, ["__dot__", "__spc__", "__dsh__", "__default__"], [".", " ", "-", "default"]),
                    f.call(this, d)
                } catch(h) {
                    j.log("There was an error calling back an event handler")
                }
            }
        };
        p.dispatchInstreamEvent = function(a) {
            B && B.dispatchEvent(a, arguments)
        };
        p.callInternal = t;
        p.playerReady = function(a) {
            C = !0;
            v || p.setPlayer(e.getElementById(a.id));
            p.container = e.getElementById(p.id);
            j.foreach(A,
            function(a) {
                x(v, a)
            });
            u(g.JWPLAYER_PLAYLIST_ITEM,
            function() {
                H = {}
            });
            u(g.JWPLAYER_MEDIA_META,
            function(a) {
                j.extend(H, a.metadata)
            });
            u(g.JWPLAYER_VIEW_TAB_FOCUS,
            function(a) {
                var b = p.getContainer(); ! 0 === a.hasFocus ? j.addClass(b, "jw-tab-focus") : j.removeClass(b, "jw-tab-focus")
            });
            for (p.dispatchEvent(g.API_READY); 0 < F.length;) t.apply(this, F.shift())
        };
        p.getItemMeta = function() {
            return H
        };
        return p
    };
    h.playerReady = function(a) {
        var b = h.api.playerById(a.id);
        b ? b.playerReady(a) : h.api.selectPlayer(a.id).playerReady(a)
    };
    h.api.selectPlayer = function(a) {
        var b;
        j.exists(a) || (a = 0);
        a.nodeType ? b = a: "string" == typeof a && (b = e.getElementById(a));
        return b ? (a = h.api.playerById(b.id)) ? a: h.api.addPlayer(new h.api(b)) : "number" == typeof a ? l[a] : null
    };
    h.api.playerById = function(a) {
        for (var b = 0; b < l.length; b++) if (l[b].id == a) return l[b];
        return null
    };
    h.api.addPlayer = function(a) {
        for (var b = 0; b < l.length; b++) if (l[b] == a) return a;
        l.push(a);
        return a
    };
    h.api.destroyPlayer = function(a) {
        var b, d, f;
        j.foreach(l,
        function(c, e) {
            e.id === a && (b = c, d = e)
        });
        if (b === c || d === c) return null;
        j.clearCss("#" + d.id);
        if (f = e.getElementById(d.id + ("flash" == d.renderingMode ? "_wrapper": ""))) {
            "html5" === d.renderingMode && d.destroyPlayer();
            var g = e.createElement("div");
            g.id = d.id;
            f.parentNode.replaceChild(g, f)
        }
        l.splice(b, 1);
        return null
    }
} (window.jwplayer),
function(h) {
    var c = h.events,
    l = h.utils,
    j = c.state;
    h.api.instream = function(g, b) {
        function e(a, c) {
            f[a] || (f[a] = [], b.jwInstreamAddEventListener(a, 'function(dat) { jwplayer("' + g.id + '").dispatchInstreamEvent("' + a + '", dat); }'));
            f[a].push(c);
            return this
        }
        function h(a, b) {
            q[a] || (q[a] = [], e(c.JWPLAYER_PLAYER_STATE,
            function(b) {
                var c = b.newstate,
                d = b.oldstate;
                if (c == a) {
                    var e = q[c];
                    if (e) for (var f = 0; f < e.length; f++) {
                        var g = e[f];
                        "function" == typeof g && g.call(this, {
                            oldstate: d,
                            newstate: c,
                            type: b.type
                        })
                    }
                }
            }));
            q[a].push(b);
            return this
        }
        var a, d, f = {},
        q = {},
        k = this;
        k.type = "instream";
        k.init = function() {
            g.callInternal("jwInitInstream");
            return k
        };
        k.loadItem = function(b, c) {
            a = b;
            d = c || {};
            "array" == l.typeOf(b) ? g.callInternal("jwLoadArrayInstream", a, d) : g.callInternal("jwLoadItemInstream", a, d)
        };
        k.removeEvents = function() {
            f = q = {}
        };
        k.removeEventListener = function(a, b) {
            var c = f[a];
            if (c) for (var d = c.length; d--;) c[d] === b && c.splice(d, 1)
        };
        k.dispatchEvent = function(a, b) {
            var c = f[a];
            if (c) for (var c = c.slice(0), d = l.translateEventResponse(a, b[1]), e = 0; e < c.length; e++) {
                var g = c[e];
                "function" == typeof g && g.call(this, d)
            }
        };
        k.onError = function(a) {
            return e(c.JWPLAYER_ERROR, a)
        };
        k.onMediaError = function(a) {
            return e(c.JWPLAYER_MEDIA_ERROR, a)
        };
        k.onFullscreen = function(a) {
            return e(c.JWPLAYER_FULLSCREEN, a)
        };
        k.onMeta = function(a) {
            return e(c.JWPLAYER_MEDIA_META, a)
        };
        k.onMute = function(a) {
            return e(c.JWPLAYER_MEDIA_MUTE, a)
        };
        k.onComplete = function(a) {
            return e(c.JWPLAYER_MEDIA_COMPLETE, a)
        };
        k.onPlaylistComplete = function(a) {
            return e(c.JWPLAYER_PLAYLIST_COMPLETE, a)
        };
        k.onPlaylistItem = function(a) {
            return e(c.JWPLAYER_PLAYLIST_ITEM, a)
        };
        k.onTime = function(a) {
            return e(c.JWPLAYER_MEDIA_TIME, a)
        };
        k.onBuffer = function(a) {
            return h(j.BUFFERING, a)
        };
        k.onPause = function(a) {
            return h(j.PAUSED, a)
        };
        k.onPlay = function(a) {
            return h(j.PLAYING, a)
        };
        k.onIdle = function(a) {
            return h(j.IDLE, a)
        };
        k.onClick = function(a) {
            return e(c.JWPLAYER_INSTREAM_CLICK, a)
        };
        k.onInstreamDestroyed = function(a) {
            return e(c.JWPLAYER_INSTREAM_DESTROYED, a)
        };
        k.onAdSkipped = function(a) {
            return e(c.JWPLAYER_AD_SKIPPED, a)
        };
        k.play = function(a) {
            b.jwInstreamPlay(a)
        };
        k.pause = function(a) {
            b.jwInstreamPause(a)
        };
        k.hide = function() {
            g.callInternal("jwInstreamHide")
        };
        k.destroy = function() {
            k.removeEvents();
            g.callInternal("jwInstreamDestroy")
        };
        k.setText = function(a) {
            b.jwInstreamSetText(a ? a: "")
        };
        k.getState = function() {
            return b.jwInstreamState()
        };
        k.setClick = function(a) {
            b.jwInstreamClick && b.jwInstreamClick(a)
        }
    }
} (window.jwplayer),
function(h) {
    var c = h.api,
    l = c.selectPlayer;
    c.selectPlayer = function(c) {
        return (c = l(c)) ? c: {
            registerPlugin: function(c, b, e) {
                h.plugins.registerPlugin(c, b, e)
            }
        }
    }
} (jwplayer));